У меня есть таблица в файле HTML, используя мой CODE ниже. Мне удалось получить все значения из этой таблицы в виде массива.PHP - Как преобразовать массив из (Key, Value) в (Key, Value, Value)?
Проблема заключается в том, что мой код задает Array как: (Key -> Value) (Key -> Value). Но структура моих данных: (Key -> Value, Value) (Key -> Value, Value)
Вот Содержание: myHTMLfile.html
<td height="22" align="center" bgcolor="#FFFFFF">1 Hour </td>
<td align="center" bgcolor="#FFFFFF">400 USD</td>
<td align="center" bgcolor="#FFFFFF">450 USD</td>
<td height="22" align="center" bgcolor="#FFFFFF">2 Hours</td>
<td align="center" bgcolor="#FFFFFF">500 USD</td>
<td align="center" bgcolor="#FFFFFF">600 USD</td>
<td height="22" align="center" bgcolor="#FFFFFF">3 Hours </td>
<td align="center" bgcolor="#FFFFFF">600 USD</td>
<td align="center" bgcolor="#FFFFFF">700 USD</td>
Im используя этот код, чтобы получить содержание и сделать этот массив:
$file = ("myHTMLfile.html");
$searchfor = 'align="center" bgcolor="#FFFFFF"';
header('Content-Type: text/html');
$html = file_get_contents($file);
$pattern = preg_quote($searchfor, '/');
$pattern = "/^.*$pattern.*\$/m";
if(preg_match_all($pattern, $html, $matches));
function remap_alternating(array $values) {
$remapped = array();
for($i = 0; $i < count($values) - 1; $i += 2) {
$remapped[strip_tags(trim($values[$i]))] = strip_tags(trim($values[$i + 1]));
}
return $remapped;
}
$mapped = remap_alternating($matches[0]);
// RAM
$keys = array_map("trim", array_map("strip_tags", array_keys($mapped)));
$values = array_map("trim", array_map("strip_tags", array_values($mapped)));
$mapped = array_combine($keys, $values);
Ниже вы можете увидеть результаты, которые я получаю от var_dump($mapped);
array(4) {
["1 Hour"]=>
string(7) "400 USD"
["450 USD"]=>
string(7) "2 Hours"
["500 USD"]=>
string(7) "600 USD"
["3 Hours"]=>
string(7) "600 USD"
}
Я хочу, чтобы этот массив результатов выглядеть следующим образом:
array(3) {
["1 Hour"]=>
string(16) "400 USD, 450 USD"
["2 Hours"]=>
string(16) "500 USD, 600 USD"
["3 Hours"]=>
string(7) "600 USD"
}
Мой вопрос: Что такое правильный код PHP программирования, чтобы получить результаты, как я хочу?
ОБНОВЛЕНО НИЖЕ
Я нашел пример, и это выглядит как его то, что мне нужно. Но как я могу использовать его с моим CODE выше?
Пример:
$get = "first=value1&second=value2&third=value3";
print_r(array_map2("explode","=",explode("&",$get)));
будет распечатать:
Array
(
[0] => Array
(
[0] => first
[1] => value1
)
[1] => Array
(
[0] => second
[1] => value2
)
[2] => Array
(
[0] => third
[1] => value3
)
)
Правильный PHP-код является рабочим –
@RoyalBg: Awesome .. С чем это выглядит? ;-) – Cyborg
Он выглядит как любой другой PHP-код, переменные, функции и т. Д. Внутри тегов ' Php'. Теперь, серьезно, вы не пытались решить свою проблему. Дайте нам рядом с информацией, как вы получили массив, как вы пытались его изменить. И мы можем вам помочь –