具有双键的多维数组

时间:2017-04-08 23:02:35

标签: php arrays multidimensional-array

我正在从事一个私人项目,我有以下问题。

这就是我所拥有的:

array(3) {
  [0]=>
  array(2) {
    ["import_key"]=>
    string(2) "id"
    ["import_value"]=>
    string(6) "345412"
  }
  [1]=>
  array(2) {
    ["import_key"]=>
    string(4) "date"
    ["import_value"]=>
    string(10) "21-08-2017"
  }
  [2]=>
  array(2) {
    ["import_key"]=>
    string(4) "name"
    ["import_value"]=>
    string(53) "Psy-Fi shuttle bus Psy-Fi Festival - Schiphol Airport"
 }
}

我想要的是, import_key 将被指定为关键字,而 import_value 将被指定为值。

我该怎么做。

很多!

1 个答案:

答案 0 :(得分:2)

编辑:在您发表评论后更新

所以在下面你的评论之后是更新后的代码:

$cleanArray = array();
$resultArray = array();
foreach ($array as $sub) {
    $cleanArray[$sub["import_key"]] = $sub["import_value"];
}
$resultArray = array($cleanArray['id']=>$cleanArray);

现在使用相同的原始代码,然后将$ cleanArray数组添加到新数组$ resultArray中,该数组从$ cleanArray的'id'值中获取键。

请注意,如果最终在原始$数组中有多组数据,并且有两个或更多id等,则会失败。为了解决这个问题,你需要做一个额外的foreach循环和更多的逻辑

原始回复:

如果我正确理解你的问题,你想迭代数组来得到类似的东西:

Array (
    [id] => 345412
    [date] => 21-08-2017
    [name] => Psy-Fi shuttle bus Psy-Fi Festival - Schiphol Airport
)

为此,我将您的第一个数组设置为一个变量,富有想象力地称为$ array。

然后使用以下函数,上面的输出将作为$ cleanArray返回:

$cleanArray = array();  
foreach ($array as $sub) {
    $cleanArray[$sub["import_key"]] = $sub["import_value"];
}

这样做会创建一个名为$ cleanArray的空白数组,遍历$ array中的每个索引,然后将值添加到$ cleanArray,作为键/值对。

希望这是你想要的。