Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/246.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 具有双键的多维数组';s_Php_Arrays_Multidimensional Array - Fatal编程技术网

Php 具有双键的多维数组';s

Php 具有双键的多维数组';s,php,arrays,multidimensional-array,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"]=&g

我在做一个私人项目,我有以下问题

这就是我所拥有的:

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\u键将被指定为键,import\u值将被指定为值

我怎样才能做到这一点


太多了

编辑:在您的评论后更新

因此,在您的评论之后,下面是更新的代码:

$cleanArray = array();
$resultArray = array();
foreach ($array as $sub) {
    $cleanArray[$sub["import_key"]] = $sub["import_value"];
}
$resultArray = array($cleanArray['id']=>$cleanArray);
现在,它使用的是以前的原始代码,然后将$cleanArray数组添加到一个新数组$resultArray,该数组从$cleanArray的'id'值中获取密钥

请注意,如果您的原始$array中有多组数据,并且有两个或多个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


希望这是您想要的。

编辑:在您的评论后更新

因此,在您的评论之后,下面是更新的代码:

$cleanArray = array();
$resultArray = array();
foreach ($array as $sub) {
    $cleanArray[$sub["import_key"]] = $sub["import_value"];
}
$resultArray = array($cleanArray['id']=>$cleanArray);
现在,它使用的是以前的原始代码,然后将$cleanArray数组添加到一个新数组$resultArray,该数组从$cleanArray的'id'值中获取密钥

请注意,如果您的原始$array中有多组数据,并且有两个或多个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


希望这就是您想要的。

您是否尝试在数组上迭代以使用所需的键和值组成新的数组?我不确定我是否理解这个问题。是否要将其转换为类似此数组的一维数组(“id”=>“345412”);您是否尝试在数组上迭代以使用所需的键和值组成新的数组?我不确定是否理解这个问题。是否要将其转换为类似此数组的一维数组(“id”=>“345412”);如果我想要一个uuid作为主键,比如$cleanArray[$sub['import_uuid']=>[$sub[“import_key”]]=$sub[“import_value”];它不是这样工作的对:梭利,我想我不明白你想得到什么?你能澄清一点吗。但是不,这不起作用,因为所有的$sub数组都包含在$array的数组中,所以在第一次迭代中,$sub包含:array(“import\u key”=>“id”,“import\u value”=>“345412”)。这意味着没有可供其引用的“import\u uuid”…我想要的是:123=>[id=>123,name=>123];等等。对不起,我还不完全确定你在问什么……你能用你问题中的数组解释一下吗,就像你上面的例子一样,让你很难知道初始密钥是来自'id'还是'name'等等。这就是我想要的:如果我想要一个uuid作为顶密钥,比如?$cleanArray[$sub['import\uuid']=>[$sub[“import\u key”]=$sub[”导入_值“];这样不行:梭利,我想我不明白你想要的结果是什么?你能澄清一点吗。但是不,这不起作用,因为所有的$sub数组包含的都是$array中的每个数组,所以在第一次迭代中,$sub包含:array(“导入_键”=>“id”,“导入_值”=>“345412”)。这意味着没有“import\u uuid”供其引用…我想要的是:123=>[id=>123,name=>123];等。抱歉,我仍然不能完全确定您在问什么……您能否使用问题中的数组进行解释,如上面的示例所示,使您很难知道初始密钥是否来自“id”或“name”等。这就是我想要的: