如何修改数组,使每个项都是php中的数组(请在描述中说明)


how to modify array that each item is array in php (clarify in description)

我有一个数组,每个数组的项都是对象,我用以下代码转换了这个数组:

json_decode(json_encode($array), true)

代码的结果是这样的数组:

[
  '1'=>[
   'slug'=>'a'
   'title'=>'foo' 
  ],
  '2'=>[
   'slug'=>'b'
   'title'=>'bar' 
  ],
  '3'=>[
   'slug'=>'c'
   'title'=>'foo' 
  ],
]

现在我想把这个阵列隐藏到像这样的东西上

 [
   'a'=>'foom',
   'b'=>'bar',
   'c'=>'foo',
 ] 

我该怎么做??

使用foreach和array_combine()

foreach ($your_array as $key => $value) {
  // get all the keys in $slug array
  $slug[] = $value['slug'];
  // get all the values in $title array
  $title[] = $value['title'];
}
// finally combine and get your required array
$required_array = array_combine($slug, $title);

我认为它也可以通过-实现

$requiredArray = array_combine(
   array_column($your_array, 'slug'), 
   array_column($your_array, 'title')
);

您必须迭代初始数组并创建新数组,如下所示:

$array = [
  '1'=>[
   'slug'=>'a'
   'title'=>'foo' 
  ],
  '2'=>[
   'slug'=>'b'
   'title'=>'bar' 
  ],
  '3'=>[
   'slug'=>'c'
   'title'=>'foo' 
  ],
];
$result = [];
foreach($array as $elem){
   $index = $elem["slug"];
   $value= $elem["title"];
   $result[$index] = $value; 
}
foreach($array as $elem){
    $result[$elem["slug"]] = $elem["title"]; 
}