将数组添加到没有密钥ID的数组? - PHP

时间:2017-04-13 11:29:39

标签: php arrays multidimensional-array associative-array

我有一个大数组,看起来像这样:

array(2) {
  ["Final Fantasy VII"]=>
  array(5) {
    ["rows"]=>
    array(2) {
      [0]=>
      array(6) {
        ["price"]=>
        string(5) "11.69"
        ["price_old"]=>
        string(4) "4.66"
        ["currency"]=>
        string(4) "euro"
        ["portal"]=>
        string(0) ""
        ["link"]=>
        string(77) "https://de.gamesplanet.com/game/final-fantasy-vii-download--1001-1?ref=gmkeys"
        ["shop"]=>
        string(4) "9507"
      }
      [1]=>
      array(6) {
        ["price"]=>
        string(5) "14.99"
        ["price_old"]=>
        ...
      }
    }
  }

 ["Battlefield 1"]=>
  array(3) {
    ["rows"]=>
    array(2) {
      [0]=>
      array(6) {
        ["price"]=>
        ...
      }
      [1]=>
      array(6) {
        ["price"]=>
        ...
      }
    }
  }
}

我想只得到这个数组的某些部分,其名称与我搜索过的标题相匹配。所以,我使用这个代码:

function createACFRepeater($title){
    $repeater = array();

    if(searchForGameXML($title)){

        $count = count($GLOBALS["productsXML"][$title]['rows']);

        for($i = 0; $i < $count; $i++){
            array_push($repeater, $GLOBALS["productsXML"][$title]['rows'][$i]);
        }

        return $repeater;
    }else{
        return $repeater;
    }
}

我现在的问题是$repeater数组看起来像这样:

array(2) {
  [0]=>
  array(6) {
    ["price"]=>
    string(5) "19.98"
    ["price_old"]=>
    ...
  }
  [1]=>
  array(6) {
    ["price"]=>
    string(4) "7.99"
    ["price_old"]=>
    ...
  }
}

有一个指向数组[0] => ...的数字键。但我想要的只是一个没有任何关联关系的数组中的数组......

如何创建一个如下所示的数组:?

array(2) {
      array(6) {
        ["price"]=>
        string(5) "19.98"
        ["price_old"]=>
        ...
      }
      array(6) {
        ["price"]=>
        string(4) "7.99"
        ["price_old"]=>
        ...
      }
    }

问候,谢谢!

2 个答案:

答案 0 :(得分:1)

根据array definition,这是不可能的。任何数组项必须具有,数组文档从以下开始:

  

PHP中的数组实际上是一个有序的映射。映射是将值与键

相关联的类型

答案 1 :(得分:1)

始终拥有数字键。正如@lubart已经说过的那样:没有钥匙就不可能拥有一个阵列。顺便说一句,所有下列数组完全相同:

$array1 = array([0] => array([0] => 'hi', [1] => array([0] => '23.5')));

$array2 = array(array('hi', array('23.5')));

$array3 = [['hi', ['23.5']]];

$array4 = [ [0] => [ [0] => 'hi', [1] => [ [0] => '23.5' ] ] ];