php 数组填充


$oldArr = array(
array(
    0 => 'A0060750',
    1 => 9787560618852),
array(
    0 => '',
    1 => 9787560618855),
array(
    0 => '',
    1 => 9787560618856),
array(
    0 => 'A00607507',
    1 => 9787560618857),
array(
    0 => '',
    1 => 9787560618858)
);

转化为


$newArr = array(
array(
    0 => 'A0060750',
    1 => 9787560618852),
array(
    0 => 'A0060750',
    1 => 9787560618855),
array(
    0 => 'A0060750',
    1 => 9787560618856),
array(
    0 => 'A00607507',
    1 => 9787560618857),
array(
    0 => 'A00607507',
    1 => 9787560618858)
);

简单说就是,如果二维数组中的,$oldArr[i][0] 的值为空,就以上一个不为空的值填充。
阅读 2.8k
2 个回答
<?php

$oldArray = [
    ['A0060750', 9787560618852],
    ['', 9787560618855],
    ['', 9787560618856],
    ['A00607507', 9787560618857],
    ['', 9787560618857]
];

$lastId = '';
foreach ($oldArray as &$item) {
    if ($item[0]) {
        $lastId = $item[0];
        continue;
    }
    $item[0] = $lastId;
}

var_dump($oldArray);
$sPrevName = '';
$aNewArr = [];
foreach($oldArr as $v){
    if($v[0] == ''){
        $v[0] = $sPrevName;
    }
    $aNewArr[] = $v;
    $sPrevName = $v[0];
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题