use*_*590 3 php arrays associative-array filtering multidimensional-array
我有一个一维数组,如下所示:
$arr = [
'itemName0' => "first Item",
'itemDesc0' => "first item's description",
'itemName1' => "second item",
'itemDesc1' => "third item's description",
];
Run Code Online (Sandbox Code Playgroud)
我想将其转换为二维数组,如下所示
$arr = [
0 => [
'itemName' => "first Item",
'itemDesc' => "first item's description",
],
1 => [
'itemName' => "second item",
'itemDesc' => "Second item's description",
],
];
Run Code Online (Sandbox Code Playgroud)
实际上,我有来自 api 响应的数据,其中包含除项目之外的其他详细信息......{index} 例如
$arr = [
'status' => 'success',
'blahblah' => 'this is just a test',
'itemName0' => "first Item",
'itemDesc0' => "first item's description",
'itemName1' => "second item",
'itemDesc1' => "third item's description",
];
Run Code Online (Sandbox Code Playgroud)
但我只需要项目数据。
我尝试按如下方式使用 array_map 来获取项目,但无法..
array_map(function($value, $key){ strpos($key, 'item') === false ? false : $value; }, $arr));
Run Code Online (Sandbox Code Playgroud)
我仍在尝试..任何想法都会非常有帮助
使用数组块方法是最简单的
$input_array = array('a', 'b', 'c', 'd', 'e','f');
print_r(array_chunk($input_array, 2));
Run Code Online (Sandbox Code Playgroud)
输出:
Array
(
[0] => Array
(
[0] => a
[1] => b
)
[1] => Array
(
[0] => c
[1] => d
)
[2] => Array
(
[0] => e
[1] => f
)
)
Run Code Online (Sandbox Code Playgroud)