php 格式化数组结果

问题描述 投票:0回答:2

我有一个如下所示的数组。这是在我们的一台服务器上查询的结果。

Array
(
    [count] => 1
    [0] => Array
        (
            [name] => Array
                (
                    [count] => 1
                    [0] => mac
                )

            [0] => name
            [staffid] => Array
                (
                    [count] => 1
                    [0] => 1234
                )

            [1] => staffid
            [school] => Array
                (
                    [count] => 1
                    [0] => western
                )

            [2] => school
            [count] => 3
            [dn] => cn=mac,cn=staff
        )

)

如何循环遍历该数组并创建一个新数组,如下所示。

Array
(
    [name] => mac
    [staffid] => 1234
    [school] => western
)

我尝试了一个

foreach
循环来回显键和值,但我不确定从哪里开始。随着查询的扩展,将返回更多结果,但原始数组布局将相同,新布局需要具有相同的格式。

有什么想法吗? 谢谢

php arrays format
2个回答
2
投票

试试这个:

$result = array();
foreach($yourArray as $element){
    for($i=0;$i<$element['count']; $i++){
        unset($element[$element[$i]]['count']);
        $result[$element[$i]] = implode(', ', $element[$element[$i]]);
    }
}

0
投票

这是一个非常奇怪/笨拙的数据结构。 假设第一层只有一个

count
和一个索引元素,您可以在第二层搜索索引元素,并将这些值用作相关值的键。

代码:(演示

$result = [];
foreach ($array[0] as $k => $v) {
    if (is_int($k)) {
        $result[$v] = $array[0][$v][0];
    }
}
var_export($result);

输出:

array (
  'name' => 'mac',
  'staffid' => '1234',
  'school' => 'western',
)
© www.soinside.com 2019 - 2024. All rights reserved.