使用PHP将Array中的元素推送到数组中

时间:2014-03-12 11:32:25

标签: php

我是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要求'), 数组('欢迎光临'))

非常感谢任何帮助。

3 个答案:

答案 0 :(得分:3)

你可以把

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

而不是array_push(...)

答案 1 :(得分:0)

替换

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"
    }
)

答案 2 :(得分:0)

当您推送数组时,您正在推送一个字符串:

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);
}