оператор foreach для получения значений из массива - PullRequest
1 голос
/ 26 февраля 2012

Это краткий пример массива, с которым я работаю.

Array ( [0] => Array ( [Name] => somename [Attributes] => Array ( [Body] => somebody 
[Region] => someregion [State] => somestate [Url] => someurl [Date] => somedate [Tz] => 
sometz [Title] => sometitle [City] => somecity ) ) [1] => Array ( [Name] => somename1 
[Attributes] => Array ( [Body] => somebody1 [Region] => someregion1 [State] => somestate1 
[Url] => someurl1 [Date] => somedate1 [Tz] => sometz1 [Title] => sometitle1 [City] => 
somecity1 ) ) )

Мне просто нужна помощь с оператором foreach для получения значений каждого массива.

Любой примерСортировка этих массивов на основе даты также будет оценена.

Спасибо

Ответы [ 3 ]

3 голосов
/ 26 февраля 2012

Помогает посмотреть документацию php:

http://php.net/manual/en/control-structures.foreach.php

В этом случае вы просто хотите сделать:

foreach (your_array_name as $value)
    //do something with $value
2 голосов
/ 26 февраля 2012

Решением будет использование двух вложенных foreach () :

foreach ($array as $value) {
  foreach($value as $v){
    echo $v;
  }
}

Наконец, для сортировки массива вы можете использовать usort () или cmp () . Не забудьте использовать тот же формат для вашей даты (в идеале ISO 8601), чтобы вы могли легко их отсортировать.

1 голос
/ 26 февраля 2012

Использовать технику мультисортировки http://in.php.net/array_multisort

$array1 = array(0 => array('name' => somename1, 'Attributes' => array('Body' => somebody,
                'Region' => someregion, 'State' => somestate, 'Url' => someurl, 'Date' => '26-02-2011', 'Tz' =>
                sometz, 'Title' => sometitle, 'City' => somecity)),
        1 => array('name' => somename2, 'Attributes' => array('Body' => somebody,
                'Region' => someregion, 'State' => somestate, 'Url' => someurl, 'Date' => '25-02-2011', 'Tz' =>
                sometz, 'Title' => sometitle, 'City' => somecity)));

    foreach ($array1 as $index => $inner_arr) {
        $attr = $inner_arr['Attributes'];
        foreach ($attr as $key => $value) {
            $date_arr[$index] = strtotime($attr['Date']);
        }
    } 
//for multisort give date array as the array accoring to which the data to be sorted. 
//We are dumping date into array and trying to sort data according tot he date array sorted.

    array_multisort($date_arr,$array1);

    //after sorting loop thru data
    foreach ($array1 as $inner_arr) {
        echo "name:". $inner_arr['name'];
        foreach ($inner_arr['Attributes'] as $key => $value) {
            echo "<br>$key: $value";

        }
        echo '<hr>';
    }
...