php 数组改造

php数组如下

array(6) {
  [17]=>
  array(1) {
    [0]=>
    string(1) "1"
  }
  [11]=>
  array(1) {
    [0]=>
    string(1) "2"
  }
  [10]=>
  array(1) {
    [0]=>
    string(1) "6"
  }
  [9]=>
  array(1) {
    [0]=>
    string(1) "1"
  }
}

上面的数组 怎么变成下面的那样

[['17','1'],['11','2'],['10','6'],['9','1']]
谢谢大神
阅读 3.2k
4 个回答
<?php
$arrayOld = array(
    '17' => array('1'),
    '11' => array('2'),
    '10' => array('6'),
    '9' => array('1'),
);
$arrayNew = [];

foreach($arrayOld as $key => $value){
    $arrayNew[] = [(string)$key,$value[0]];
}

var_export ($arrayNew);
$old = array(
    '17' => '1',
    '11' => '2',
    '10' => '6',
    '9' => 1 
);

$new = array_chunk($old, 1, true);
foreach ($new as $key => &$val) {
    array_unshift($val, $key);
}
var_dump($new);
<?php

  $data= array(
    '17' => array('1'),
    '11' => array('2'),
    '10' => array('6'),
    '9' => array('1'),
  );

  function maps(&$array,$key) {
    array_unshift($array, $key);
  }

  array_walk($data, 'maps');
  print_r($data);
?>

楼上答主们给的答案都挺不错的了,我也忍不住献一下丑

$old = [
  '17' => ['1'],
  '11' => ['2'],
  '10' => ['6'],
  '9' => ['1'],
];
$new = [];
foreach ($old as $key => $value) {
  $new[] = [$key, $value[0]];
}
var_dump($new);

其实挺简单的,答案都不会差到哪里去,我就简单的补充说明一下好了

首先是,要学会遍历foreach,然后就是php是一门弱类型的语言,变量类型回自己转换的

哦对,再有就是要知道$arr[] = $var,是像数组的末尾添加元素,还有一种方法是array_push($arr, $var),不过这种做法效率低过第一种

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题