我有一个php数组。我想将这个数组拆分为2个数组。请看下面的例子: -
$arrayIhave = array (
'id' => '1',
'name' => 'ripa',
'roll' => '10',
'country' => 'india',
'state' => 'WB',
'status' => 'active'
);
我需要将此分为以下几种: -
$array1 = array(
'id' => '1',
'status' => 'active'
);
$array2 = array(
'name' => 'ripa',
'roll' => '10'
);
$array3 = array(
'country' => 'india',
'state' => 'WB'
);
那么,什么是最好的专业解决方案?
答案 0 :(得分:2)
我不确定你是如何弄乱阵列但你可以简单地使用array_chunk
将它们分成两部分
list($array1,$array2,$array3) = array_chunk($arrayIhave, 2,true);
或者只是使用模板来定义元素的位置
$template = array(
array("id"=>null,"name"=>null),
array("name"=>null,"roll"=>null),
array("country"=>null,"state"=>null)
);
$arrayIhave = array (
'id' => '1',
'name' => 'ripa',
'roll' => '10',
'country' => 'india',
'state' => 'WB',
'status' => 'active'
);
foreach ( $template as $var ) {
$var = array_intersect_key($arrayIhave, $var);
var_dump($var);
}
输出
array (size=2)
'id' => string '1' (length=1)
'name' => string 'ripa' (length=4)
array (size=2)
'name' => string 'ripa' (length=4)
'roll' => string '10' (length=2)
array (size=2)
'country' => string 'india' (length=5)
'state' => string 'WB' (length=2)
答案 1 :(得分:1)
您可以使用函数array_intersect_key
和array_flip
的组合(后者函数在aray中翻转键和值):
$array1 = array_intersect_key($arrayIhave, array_flip(array('id', 'status')));
$array2 = array_intersect_key($arrayIhave, array_flip(array('name', 'roll')));
$array3 = array_intersect_key($arrayIhave, array_flip(array('country', 'state')));
答案 2 :(得分:0)
您可以根据原始数组中的数据创建新数组,使用关联键访问元素:
$array1 = array(
'id' => $arrayIhave['id'],
'status' => $arrayIhave['active']
);
$array2 = array(
'name' => $arrayIhave['name'],
'roll' => $arrayIhave['roll']
);
$array3 = array(
'country' => $arrayIhave['country'],
'state' => $arrayIhave['state']
);