在PHP中读取复杂数组

时间:2014-01-18 19:58:31

标签: php arrays

您好我有一个PHP脚本,它返回一个类似的数组:

array(2) {
    [0]=> array(1) {
        ["Code"]=> int(100)
    }
    [1]=> array(1) {
        ["Drivers"]=> array(1) {
            [0]=> array(7) {
                ["RowID"]=> string(3) "139"
                ["DriverName"]=> string(7) "John"
                ["DriverAlias"]=> string(6) "DRX7"
                ["DriverEmail"]=> string(23) "xxx@hotmail.fr"
                ["DriverPhone"]=> string(12) "8888888888"
                ["DriverActivity"]=> string(8) "Inactive"
                ["DriversActiveDates"]=> array(1) {
                    [0]=> string(9) "2014-2-15"
                }
            }
        }
    }
}

如何阅读或打印此阵列上的所有信息?感谢

3 个答案:

答案 0 :(得分:0)

试试这个;

foreach($arr as $a){
    foreach($a as $key => $value){
        if(is_array($value)){
            foreach($value as $key2 => $value2){
                 echo'key: '.$key2.' value: '.$value2;
            }
        }
        else{
            echo'key: '.$key.' value: '.$value;
        }
    }
}

答案 1 :(得分:0)

由于数组中的数组具有未知深度,因此必须使用递归函数来确保获得每个键/值对。

array_walk_recursive($your_array, function($item, $key){
    if (!is_array($item)) print "{$key}: {$item}";
});

array_walk_recursive的php文档中右边是另一个例子:

$sweet = array('a' => 'apple', 'b' => 'banana');
$fruits = array('sweet' => $sweet, 'sour' => 'lemon');

function test_print($item, $key)
{
  echo "$key holds $item\n";
}

array_walk_recursive($fruits, 'test_print');

http://php.net/manual/en/function.array-walk-recursive.php

答案 2 :(得分:0)

你可以试试这个

    function printArray($value, $key){
        echo sprintf('%s => %s', $key, $value);
    }
    array_walk_recursive($a, 'printArray');