在cakephp中组合一些数组

时间:2017-05-01 03:38:13

标签: arrays cakephp-3.0

如何转换输入数组

$input['id'] = [1,2,3,4];
$input['name'] = ['a' , 'b' , 'c'];
$input['alias'] = ['i' , 'ii' , 'iii' , 'iv' , 'v'];
$input['object'] = [$object1 , $object2];

输出数组

$output[] = ['id'=>1 , 'name'=>'a' , 'alias'=>'i' , 'object'=>$object1];
$output[] = ['id'=>2 , 'name'=>'b' , 'alias'=>'ii' , 'object'=>$object2];
$output[] = ['id'=>3 , 'name'=>'c' , 'alias'=>'iii' , 'object'=>NULL];
$output[] = ['id'=>4 , 'name'=>'' , 'alias'=>'iv' , 'object'=>NULL];
$output[] = ['id'=>0 , 'name'=>'' , 'alias'=>'v' , 'object'=>NULL];

错过号码= 0
错过了字符串=''
miss object = null

1 个答案:

答案 0 :(得分:0)

作为第一个答案,我会做以下事情:

$output = array_map(null, $input['id'], $input['name'], $input['alias'], $input['object']);

这将从数组中创建一个数组。

此解决方案的对象是,如果未设置值,它始终返回null

更多信息:http://php.net/manual/en/function.array-map.php#example-5583

编辑2017年5月3日 如果需要将键添加到输出(id,name,alias,object),则可以将函数应用于堆栈中的每个项目以添加它们。 以下是可能的解决方案:

array_walk($output, function(&$item, $key) { $item = array_combine(['id','name','alias', 'object'], array_values($item)); });