2017-04-08 88 views
0

我正在一个私人项目,我有以下问题。多维数组与双键

这是我有:

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的价值。

我该怎么做。

Thiks很多!

+0

您是否尝试遍历数组以构建具有所需键和值的新数组? –

+0

不知道我明白这个问题。你想把它变成像这个数组一样的一维数组(“id”=>“345412”); –

回答

2

编辑:您的意见

后更新,所以下面在这里您的意见后更新的代码:

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

这是什么,现在呢,之前使用相同的原代码,它然后添加将$ cleanArray数组添加到新数组$ $ arrayArray,该数组从$ 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,通过每个指标在$数组,然后循环将值添加到$ cleanArray,作为键/值对。

希望这是你想要的。

+0

如果我想要一个uuid作为最大的关键,像? $ cleanArray [$ sub ['import_uuid'] => [$ sub [“import_key”]] = $ sub [“import_value”];它不适用于这种方式:S –

+0

对不起,我不认为我明白你想结束什么?你能澄清一点吗?但是,不会,因为$ sub数组包含的每个数组都在$ array的数组中,所以对于第一次迭代,$ sub包含:array( “import_key”=>“id”, “import_value”=> “345412” )。这意味着它没有'import_uuid'供它参考... –

+0

我想要的是:123 => [id => 123,name => 123];等等 –