2016-09-07 75 views
-1

我有索引的数组一样如何重新格式化阵列

$array = array(
    "first_name" => "test", 
    "last_name" => "testsurename" 
); 

我需要将其转换为:

$array = array(
    "0" => array("first_name" => "test"), 
    "1" => array("last_name" => "testsurename") 
); 

回答

3

试试这个,

$array = array("first_name"=>"test","last_name"=>"testsurename"); 
$newarray = array(); 
foreach($array as $key=> $val) 
{ 
    $newarray[][$key] = $val; 
} 
print_r($newarray); 

输出

$array = array(
    "0" => array("first_name" => "test"), 
    "1" => array("last_name" => "testsurename") 
); 

DEMO

+0

也可以使用'$ newarray [] =阵列($密钥=> $ VAL);'。 –

+0

@帕特里克格雷戈里奥:这也是工作。 – Dave

1

您可以尝试

<?php 
$array = array("first_name"=>"test","last_name"=>"testsurename"); 

$final_array = []; 
foreach ($array as $key => $value) { 
    array_push($final_array, [$key => $value]); 
} 

print_r($final_array); 

输出

Array ([0] => Array ([first_name] => test) [1] => Array ([last_name] => testsurename)) 
2

另一种方法是使用array_walk,但基本上都是一样的。

$array = array("first_name"=>"test","last_name"=>"testsurename"); 

$result = array(); 

array_walk($array, 
      function(&$item, $key, $target) { $target[] = array($key => $item); }, 
      &$result); 
1
$inputArray = [ 
    "first_name" => "test", 
    "last_name" => "testsurename" 
]; 

$outputArray = array_reduce(array_keys($inputArray), function($carry, $key) use ($inputArray) { 
    $carry[][$key] = $array[$key]; 
    return $carry; 
}, []); 

/** 
result will be for $outputArray 
[ 
    ["first_name" => "test"], 
    ["last_name" => "testsurename"] 
]; 
**/