在数组中推送数组

时间:2015-09-01 12:09:02

标签: php arrays function

我创建了一个名为“keyword_query()”的函数,该函数获取单个字符串并在API上使用此变量运行查询 - 然后API返回一个数组(定义为全局,因此它也在函数外部更改)。

第二个函数“keyword_query_array()”应该多次运行“keyword_query()”,并推送到一个新的数组(也是全局的)并获得一个包含多个数组的数组。此函数获取关键字数组的变量。该函数获取数组并在没有任何问题的情况下导航数组。

请注意代码中的注释:

<?php

// Runs the query "Research Key" on a keyword and get App ids, names, ect'. 
function keyword_query($keyword){

    global $research_key_array, $keyword;

    // Add the keyword to the "Research Key" query: 
    $research_key_query = "https://example.com/api/banana/ajax/kaka?term=$keyword&country=US&auth_token=666";

    // Create a stream for Json. That's how the code knows what to expect to get. 
    $context_opts = array(
        'http' => array(
            'method' => "GET",
            'header' => "Accepts: application/json\r\n"
        )
    ); 
    $context = stream_context_create($context_opts); 

    // Get the Json
    $research_key_json = file_get_contents($research_key_query, false, $context); 

    // Turn Json to a PHP array
    $research_key_array = json_decode($research_key_json, true);
    //var_dump($research_key_array);
    //print_r($research_key_array);

    return $research_key_array;
}


// Runs the keyword_query() function on an array of keywords.
function keyword_query_array($keyword_array){

    global $array_of_key_queries;

    // Get the last array cell
    $last_array_cell = count($keyword_array);

    // Navigate through the array
    for ($i=0; $i<=$last_array_cell ; $i++) { 

        //echo $keyword_array[$i]; ****works!

        // Error here: Notice: Undefined offset: 3 in C:\wamp\www\PHPExcel\api_fun.php on line 51
        array_push( $array_of_key_queries, keyword_query($keyword_array[$i]) );

    }

    var_dump($array_of_key_queries);

}

但是当我到达这条线时: array_push( $array_of_key_queries, keyword_query($keyword_array[$i]) );我收到错误:

  

注意:未定义的偏移量:第51行的C:\ wamp \ www \ PHPExcel \ api_fun.php中的3

使用此var_dump:

array (size=4)
  0 => 
    array (size=1)
      'keyword' => 
        array (size=0)
          empty
  1 => 
    array (size=1)
      'keyword' => 
        array (size=0)
          empty
  2 => 
    array (size=1)
      'keyword' => 
        array (size=0)
          empty
  3 => 
    array (size=1)
      'keyword' => 
        array (size=0)
          empty

像这种情况一样在数组中推送数组的正确方法是什么?

1 个答案:

答案 0 :(得分:0)

我将global $research_key_array, $keyword;从第一个功能更改为global $research_key_array;

现在很棒!

谢谢@Adelphia!