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”等。这就是我想要的: