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

时间:2015-05-27 10:14:23

标签: php arrays explode

我有以下字符串:" 1,3,4,7"我需要以下列格式爆炸成一个数组:

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

这似乎比我想象的要痛苦得多。有人可以帮忙吗?

4 个答案:

答案 0 :(得分:3)

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

类似的东西:

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

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

var_dump($map);

An example

答案 1 :(得分:0)

var app = angular.module('myApp', []);
app.controller('myController', function($scope){
    $scope.items = ["John","Bob","Tanya","Owen","George"];

    $scope.fixArray = function(array, name){
        angular.forEach(array, function(a){
            if (a == name){
                $scope.index = array.indexOf(a);
            }
        });
        array.unshift(array[$scope.index]);
        array.splice($scope.index + 1, 1);
    };

    $scope.fixArray($scope.items, "Owen");
});

答案 2 :(得分:0)

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

{{1}}

答案 3 :(得分:0)

这是一种思维外在的技术,不需要循环或迭代的函数调用。

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

代码:(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',
  ),
)