1

我有以下多维数组,从查询返回:

Array
(
    [0] => Array
        (
            [dimension] => string
            [value_1] => 100
            [value_2] => 200
        )

我想要做的是创建这种格式,所以我可以通过编写如下内容来访问其中的数据$data['dimension']['key']

Array
(
    [string] => Array
        (
            [dimension] => string
            [value_1] => 100
            [value_2] => 200
        )

有没有一种干净的方法可以做到这一点,或者我应该开始玩循环?

4

3 回答 3

1

我知道如何做到这一点的唯一方法是使用循环。

$new = Array();
foreach($old as $key => $value) {
    $new[$value['dimension']] = $value;
}

print_r($new);
于 2013-05-24T17:21:15.447 回答
1

您可以通过组合键和值来创建新数组:

array_combine(array_column($array, 'dimension'), $array)

但请记住,维度必须是唯一的。

于 2016-05-19T12:07:43.467 回答
0

您可以像现在一样访问其中的数据,而无需使用以下方法进行更多的数组修改:

$p = xml_parser_create();
xml_parse_into_struct($p, $simple, $vals, $index);
xml_parser_free($p);
//in case you want to view data in the arrays
//echo "Index array\n";
//print_r($index);
//echo "\nVals array\n";
//print_r($vals);

$answer = $vals[0][value_1];
echo $answer;

它应该 = 100

于 2016-05-26T14:51:14.807 回答