将相关多维数组数据隔离为平面关联数组

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

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

[
    'count' => 1,
    [
        'name' => ['count' => 1, 'mac'],
        'name',
        'staffid' => ['count' => 1, '1234'],
        'staffid',
        'school' => ['count' => 1, 'western'],
        'school',
        'count' => 3,
        'dn' => 'cn=mac,cn=staff',
    ],
]

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

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

我尝试了一个

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

php arrays multidimensional-array associative-array
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.