2013-07-29 2 views
0

Я работаю с простой HTML DOM, как это:Повторяющиеся значения массива не работает с Simple HTML DOM

foreach($html->find('img', 18) as $d) { 
echo $d->outertext; 
} 

Теперь я хочу, чтобы реализовать массив переменных, в данном случае образы, так что я сделал:

$img=array(

    "img"=>"18", 
    "img"=>"21" 

); 


foreach($img as $x=>$x_value) 
{ 

    $d = $html->find($x, $x_value); 
    echo $d->outertext; 

} 

Проблема заключается в том, что Simple HTML DOM возвращает только последнее изображение в массиве, которое представляет собой номер 21. Что мне нужно сделать, чтобы вернуть все в массив?

ответ

1

Это потому, что оба элемента в вашем массиве $img имеют тот же ключ. foreach не распознает их как два отдельных элемента, потому что обе клавиши: img.

Пример кода для демонстрации:

$test = array(
    "key" => 1, 
    "key" => 2 
); 

echo "Length of array: " . count($test) . "\n\n"; 

echo "Items in array:\n"; 
foreach($test as $key => $value) { 
    echo "$key => $value\n"; 
} 

Выходы:

Length of array: 1 

Items in array: 
key => 2 
+0

Спасибо, у вас есть какие-либо идеи о том, как отформатировать массив? – Youss

+0

Я нашел что-то здесь [ссылка] (http://www.w3schools.com/php/php_arrays.asp?output=print) '$ img = array (" img "," img "); $ arrlength = count ($ img); для ($ х = 0; $ х <$ arrlength; $ х ++) { Еогеасп ($ HTML-> найти ($ IMG [$ X]) в виде $ D) { эхо $ d-> outertext; } } ' – Youss

+0

Он работает, потому что он может возвращать одно и то же значение несколько раз, однако я не могу добавить индексный номер следующим образом:« img, 3 »Есть ли у вас какие-либо идеи о том, как я могу реализовать номер индекса? Должен ли я создать другой массив для этого и объединить два? – Youss

Смежные вопросы