如何在PHP中构建旧数组的新数组?

时间:2015-02-24 16:54:34

标签: php arrays

我正在尝试构建一个新数组,只是为了组织我原来的数组。

这是我的原始数组:

array (size=20893)
  0 => 
    array (size=3)
      0 => string 'Item Name' (length=9)
      1 => string 'Sales Description' (length=17)
      2 => string 'Qty on Hand' (length=11)
  1 => 
    array (size=3)
      0 => string 'bs-1808r-hrp' (length=12)
      1 => string 'RABBIT ANTI-HPT/HAPTOGLOBIN POLYCLONAL ANTIBODY, HRP CONJUGATED' (length=63)
      2 => string '' (length=0)
  2 => 
    array (size=3)
      0 => string 'bs-3605R-Biotin-de' (length=18)
      1 => string 'RABBIT ANTI-YAP1 POLYCLONAL ANTIBODY, BIOTIN CONJUGATED' (length=55)
      2 => string '' (length=0)
  3 => 
    array (size=3)
      0 => string 'bs-9185R' (length=8)
      1 => string 'RABBIT ANTI-VGLL4 POLYCLONAL ANTIBODY' (length=37)
      2 => string '' (length=0)
  4 => 
    array (size=3)
      0 => string 'Cancelled Order' (length=15)
      1 => string '' (length=0)
      2 => string '' (length=0)
  5 => 
    array (size=3)
      0 => string 'Consulting fee' (length=14)
      1 => string '' (length=0)
      2 => string '' (length=0)
  6 => 
    array (size=3)
      0 => string 'duplicate' (length=9)
      1 => string '' (length=0)
      2 => string '' (length=0)
  7 => 
    array (size=3)
      0 => string 'return' (length=6)
      1 => string '' (length=0)
      2 => string '' (length=0)
  8 => 
    array (size=3)
      0 => string 'SERVICE' (length=7)
      1 => string 'RABBIT ANTI-LPP2 POLYCLONAL ANTIBODY' (length=36)
      2 => string '' (length=0)
  9 => 
    array (size=3)
      0 => string 'Validation program' (length=18)
      1 => string '' (length=0)
      2 => string '' (length=0)
  10 => 
    array (size=3)
      0 => string 'Cold Pack' (length=9)
      1 => string '' (length=0)
      2 => string '' (length=0)

想看整个阵列? HERE

现在,它按#:0,1,2,...编号,他们的密钥也是#:0,1,2,...

我想将索引从#更改为sku,并从以下位置更改其键:

  • 0> SKU
  • 1>名称
  • 2>股票

有人能告诉我这里做错了吗?

// Contruct $new_qb_array
        foreach ( $qb_array as $key => $value )
        {
            $new_qb_array[ $value[0] ] = array('sku'=>$value[0], 'name'=>$value[1], 'stock'=>$value[2]);
            unset( $value[0] );
        }

我一直这样:

enter image description here

1 个答案:

答案 0 :(得分:0)

// Contruct $new_qb_array
foreach ( $qb_array as $key => $value )
{
    $new_qb_array[ $value[0] ] = array('sku'=>$value[0], 'name'=>@$value[1], 'stock'=>@$value[2]);
}
unset($qb_array);

请注意,在$ value [1]和$ value [2]之前添加@符号 - 这将抑制错误。

我还将unset()从你的循环中移出 - 在最后一次完成它会快得多,而不是在循环中逐个进行,除非我在你的要求方面遗漏了一些东西。