PHP 将字符串分解为多个数组

PHP Explode String Into Multiple Arrays

我有以下字符串:“1,3,4,7”,我需要将其分解为以下格式的数组:

$data = array(
   array(
      'id' => 1
   ),
   array(
      'id' => 3
   ),
   array(
      'id' => 4
   ),
   array(
      'id' => 7
   ),
);

这似乎给我带来了比我想象的更多的痛苦。请问有人可以帮忙吗?

<?php
$myArray=explode(",","1,3,5,7");

$result=array();
foreach($myArray as $key=>$arr)
{
    $result[$key]['id']=$arr;

}

print_r($result);
?>

首先分解字符串以获取数组中的值。然后遍历数组并将数据设置为数组到另一个数组

$string = "1,2,3,4";
$array = explode(",", $string);
$data = array();
foreach($array as $arr){
    $data[] = array('id' => $arr);
}

您可以组合使用 array_map() and explode():首先您创建一个包含值的数组,然后将所有这些值映射到新数组中您需要的格式。

类似于:

$vals = "1,3,4,7";

$map = array_map(function($val) {
  return array('id' => $val);
}, explode(',', $vals));

var_dump($map);

An example.

这是一个不需要循环或迭代函数调用的 thinking-outside-the-box 技术。

形成具有所需结构的有效查询字符串并对其进行解析。空 [] 语法将自动生成索引。

代码:(Demo)

$vals = "1,3,4,7";
$queryString = 'a[][id]=' . str_replace(',', '&a[][id]=', $vals);
parse_str($queryString, $output);
var_export($output['a']);

输出:

array (
  0 => 
  array (
    'id' => '1',
  ),
  1 => 
  array (
    'id' => '3',
  ),
  2 => 
  array (
    'id' => '4',
  ),
  3 => 
  array (
    'id' => '7',
  ),
)