如何使用for循环在单个数组中显示2个不同的数组

时间:2014-04-22 12:25:35

标签: php zend-framework

我的输出是:

Array
(
    [0] => Array
        (
            [0] => Array
                (
                    [no] => 316198
                    [name] => Uma
                )

            [1] => Array
                (
                    [0] => Array
                        (
                            [totavg] => 3.0403
                            [tot] => 20.2023
                            [id] => 27
                            [pid] => 710600
                            [adr] => local
                            [photo] => 123.png
                            [date] => 19930-01-06 05:40 AM
                        )

                )

        )

)

我希望显示如下:

{
    "no": "316198",
    "name": "Uma",
    "totavg": "3.0403",
    "tot": "20.2023",
    "id": "27",
    "pid": "710600",
    "adr": "local",
    "photo": "123.png",
    "date": "19930-01-06 05:40 AM"
}

我该怎么做?

3 个答案:

答案 0 :(得分:2)

使用array_walk_recursive()展平您的数组,然后使用json_encode()创建数组的JSON表示:

$result = array();
array_walk_recursive($array, function($v) use (&$result) { $result[] = $v; });
echo json_encode($result, JSON_PRETTY_PRINT);

如果您事先知道子数组的键名,可以使用array_merge(),如其他答案中所示,但如果您的数组嵌套更深一层,或者如果位置更深,那么这些解决方案将会失败子阵列事先是未知的。

输出:

[
    316198,
    "Uma",
    3.0403,
    20.2023,
    27,
    710600,
    "local",
    "123.png",
    "19930-01-06 05:40 AM"
]

Demo

答案 1 :(得分:1)

您可以将所有数组合并为一个

$resultArray = array();
foreach($bigArray as $array) {
    array_merge($resultArray, $array);
}
var_dump($resultArray);

答案 2 :(得分:0)

array_merge()应该有效:

<?php

$new_array = array_merge($old_array[0][0], $old_array[0][1][0]);

echo '<pre>'.print_r($new_array, true).'</pre>';

// I see you want JSON format?
echo json_encode($new_array);

?>