2017-04-13 81 views
0

我有一个大阵,看起来像这样:将数组添加到没有密钥ID的数组? - PHP

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"]=> 
     ... 
     } 
    } 

问候和谢谢你!

回答

1

根据array definition这是不可能的。任何数组项必须关键,用于阵列文档开始从:

PHP中的数组实际上是一个有序图。地图是将值与关键字关联的类型

+0

我需要这个数组插件。在这里观看:https://www.advancedcustomfields.com/resources/update_field/。在那里,数组看起来像这样:'$ value = array( \t array(“sub_field_1”=>“Foo1”,“sub_field_2”=>“Bar1”,“acf_fc_layout”=>“layout_1_name”), \t array (“sub_field_x”=>“Foo2”,“sub_field_y”=>“Bar2”,“acf_fc_layout”=>“layout_2_name”) );' 但也许你也有这个答案呢? https://support.advancedcustomfields.com/forums/topic/cannot-update-repeater-field/ –

+0

对!但如果你写'$ value [0]',你会收到'\t数组(“sub_field_1”=>“Foo”,“sub_field_2”=>“Bar”)''。如果您省略索引,它们会自动递增。这并不意味着该数组根本没有索引 – lubart

+0

好吧,谢谢! - 我对ACF插件 –

1

你会总是有数字键。正如@lubart所说:不可能有没有键的数组。顺便说一句,所有的follwing阵列是完全相等的:

$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' ] ] ];