【问题标题】:Push elements in an Array into array using PHP使用 PHP 将数组中的元素推送到数组中
【发布时间】:2014-04-16 12:12:57
【问题描述】:

我是 PHP 新手..

我可以使用 array_push 将元素推送到一个数组中。它给出了这样的输出..

array(0) { } 
array(1) { [0]=> string(28) "For all your PC requirements" } 
array(2) { [0]=> string(28) "For all your PC requirements" [1]=> string(10) "Welcome to" }

我的代码是

if($msgIdFound == 1){
$parts = explode('msgid ', $line_of_text);
$fp = fopen("/home/bigc/Documents/msgids.csv","w"); 

    array_push($msgIds,$m[1]);                  

$counter++;
var_dump($msgIds);
fputcsv($fp, $msgIds);
fclose($fp);
}   

但是,我想要的数组看起来像这样。

array(array('满足您的所有 PC 要求'), array('欢迎来到'))

任何帮助将不胜感激。

【问题讨论】:

  • 你正在向它推送一个 string。你怎么想成为一个array?推入一个数组。

标签: php


【解决方案1】:

你可以放

msgIds[] = array($m[1]);

而不是 array_push(...)

【讨论】:

  • 这是更好的答案。没有理由在这里使用 array_push。 msgIds[] 运行速度更快。
【解决方案2】:

替换

array_push($msgIds,$m[1]);

if (!empty($m[1])) { // avoid empty stuff...
    array_push($msgIds, array($m[1]));
}

这应该会导致:

array(2)(
    [0] => 
    array(1){
        [0] => 
        string(28) "For all your PC requirements"
    }
    [0] => 
    array(1){
        [0] => 
        string(10) "Welcome to"
    }
)

【讨论】:

    【解决方案3】:

    当你应该推送一个数组时,你正在推送一个字符串:

    if($msgIdFound == 1){
      $parts = explode('msgid ', $line_of_text);
      $fp = fopen("/home/bigc/Documents/msgids.csv","w"); 
    
      array_push($msgIds, array($m[1])); // you need to push an array             
    
      $counter++;
      var_dump($msgIds);
      fputcsv($fp, $msgIds);
      fclose($fp);
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-19
      • 2018-04-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多