Массив внутри Массива в PHP - Как получить значения? - PullRequest
2 голосов
/ 16 февраля 2011

У меня есть простой код, который генерирует массив внутри другого массива.У меня проблемы с выводом значений

<?php

require('phpQuery/phpQuery.php');

$doc = phpQuery::newDocumentFileHTML('teste.htm');

//echo $doc['center a']->value('href');
//echo $doc['center a']->text();

foreach ($doc['center a'] as $a) {
    $hrefs[] .= array(pq($a)->text() => pq($a)->attr('href'));
}

//$hrefs = array_filter($hrefs);
print_r ($hrefs);

?>

Что я получил:

Array ( [0] => Array [1] => Array [2] => Array [3] => Array [4] => Array [5] => Array [6] => Array [7] => Array [8] => Array [9] => Array [10] => Array [11] => Array [12] => Array [13] => Array [14] => Array [15] => Array [16] => Array [17] => Array [18] => Array [19] => Array [20] => Array [21] => Array [22] => Array [23] => Array [24] => Array [25] => Array [26] => Array [27] => Array [28] => Array [29] => Array [30] => Array [31] => Array [32] => Array [33] => Array [34] => Array [35] => Array [36] => Array [37] => Array [38] => Array [39] => Array [40] => Array [41] => Array [42] => Array [43] => Array [44] => Array [45] => Array [46] => Array [47] => Array [48] => Array [49] => Array [50] => Array [51] => Array [52] => Array [53] => Array [54] => Array [55] => Array [56] => Array [57] => Array [58] => Array [59] => Array [60] => Array [61] => Array [62] => Array [63] => Array [64] => Array [65] => Array [66] => Array [67] => Array ) 

Как я могу увидеть значения внутри "Массива"?Дайте мне несколько подсказок.

С наилучшими пожеланиями,

Ответы [ 5 ]

3 голосов
/ 16 февраля 2011

Значения массива на самом деле являются только строкой "Array". Я предполагаю, что из-за этой точки (конкатенация строк):

$hrefs[] .= array(pq($a)->text() => pq($a)->attr('href'));
//       ^

удалите его, и оно должно работать. Почему вы положили его там в первую очередь?

И кажется ненужным создавать массив только с одним элементом. Лучшей структурой может быть одномерный массив:

 $hrefs[pq($a)->text()] = pq($a)->attr('href');

но это зависит от ваших фактических данных.

1 голос
/ 16 февраля 2011

Вы могли бы написать

foreach ($hrefs as $arr)
{
   print_r($arr);
}

или вы заглянули внутрь так:

echo $hrefs[0][1]; //Only an Example ;-)
0 голосов
/ 16 февраля 2011
$hrefs[] .= array(pq($a)->text() => pq($a)->attr('href'));

.= - оператор объединения строк.Итак, я предполагаю:

$hrefs[] = array(pq($a)->text() => pq($a)->attr('href'));
0 голосов
/ 16 февраля 2011

используйте приведенный ниже способ, чтобы увидеть только

for ($i=0,$i<count($hrefs),$i++)
   print_r($hrefs[$i])

edit

и получите значение, подобное этому

echo  $hrefs[0]['foo'];
echo  $hrefs[1]['bar'];
....
....
0 голосов
/ 16 февраля 2011

Не делай $hrefs[] .= ..., но $hrefs[] = ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...