过滤掉不需要的元素后将一维数组转换为二维数组

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)

我仍在尝试..任何想法都会非常有帮助

Sas*_*shi 6

使用数组块方法是最简单的

$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)