我有一个像下面这样的数组,我想根据键将数组拆分成多个单独的数组。如果我有N个键,我要N个单独的数组。
Array
(
[1] => Array
(
[0] => stdClass Object
(
[service_id] => 1
[service_name] => te1
)
[1] => stdClass Object
(
[service_id] => 2
[service_name] => te2
)
)
[2] => Array
(
[0] => stdClass Object
(
[service_id] => 8
[service_name] => tr2
)
[1] => stdClass Object
(
[service_id] => 9
[service_name] => tr3
)
)
输出应该像
$array1 = Array
(
[0] => stdClass Object
(
[service_id] => 1
[service_name] => te1
)
[1] => stdClass Object
(
[service_id] => 2
[service_name] => te2
)
)
$array2= Array
(
[0] => stdClass Object
(
[service_id] => 8
[service_name] => tr2
)
[1] => stdClass Object
(
[service_id] => 9
[service_name] => tr3
)
)
答案 0 :(得分:1)
您可以尝试以下代码
<?php
$input = array(
'1' => array(
'0'=> array(
'service_id' => 1,
'service_name'=>'lorem'
),
'1'=> array(
'service_id' => 1,
'service_name'=>'ipsum'
),
),
'2' => array(
'0'=> array(
'service_id' => 1,
'service_name'=>'lorem'
),
'1'=> array(
'service_id' => 1,
'service_name'=>'ipsum'
),
),
);
foreach($input as $key => $val){
${"array".$key} = $val;// Create variables with name $array1,$array2...
}
foreach($input as $key => $val){
// Will print in loop as array1 array2....
echo '<pre>'; print_r(${"array".$key}); echo '</pre>';
}
//Individual Prinitng array1
echo '<pre>'; print_r($array1); echo '</pre>';
答案 1 :(得分:0)
尝试使用$$test
之类的创建变量
例如。
<?php
$test = array(
'1' => array(
'0'=> array(
'service_id' => 1,
'service_name'=>'first'
),
'1'=> array(
'service_id' => 2,
'service_name'=>'second'
),
),
'2' => array(
'0'=> array(
'service_id' => 3,
'service_name'=>'third'
),
'1'=> array(
'service_id' => 4,
'service_name'=>'four'
),
),
);
$name = "array";
foreach($test as $key=> $value){
$final_name = $name.$key;
$$final_name = $value;
}
echo "array1:";
print_r($array1);
echo "array2:";
print_r($array2);
输出
array1:Array
(
[0] => Array
(
[service_id] => 1
[service_name] => first
)
[1] => Array
(
[service_id] => 2
[service_name] => second
)
)
array2:Array
(
[0] => Array
(
[service_id] => 3
[service_name] => third
)
[1] => Array
(
[service_id] => 4
[service_name] => four
)
)
希望这项工作对您有用。
答案 2 :(得分:0)
您应该阅读有关${}
variable variables的信息,并针对您的情况:
foreach($data as $ind => $ar_obj){
${"array".$ind} = $ar_obj;
}
这将创建两个变量$array1
和$array2
:
Array
(
[0] => stdClass Object
(
[service_id] => 1
[service_name] => lorem
)
[1] => stdClass Object
(
[service_id] => 2
[service_name] => ipsum
)
)
Array
(
[0] => stdClass Object
(
[service_id] => 3
[service_name] => lorem
)
[1] => stdClass Object
(
[service_id] => 4
[service_name] => ipsum
)
)