【问题标题】:PHP output of foreach loop into a new arrayforeach 循环的 PHP 输出到一个新数组中
【发布时间】:2010-03-28 04:33:20
【问题描述】:

我知道我可能遗漏了一些简单的东西,但我有一个 foreach 循环,我正在尝试修改第一个数组的值,并将修改后的新数组作为新值输出。

基本上我从一个数组开始: 0 => A:B 1 => B:C 2 => C:D

我正在使用explode() 去除: 和第二个字母,所以我想留下一个数组: 0 => 一个 1 => B 2 => C

我的函数的 explode() 部分工作正常,但我似乎只得到单个字符串输出。 A、B 和 C。

【问题讨论】:

  • 你能发布你的函数吗?

标签: php arrays foreach explode


【解决方案1】:

听起来你想要这样的东西?

$initial = array('A:B', 'B:C', 'C:D');
$cleaned = array();
foreach( $initial as $data ) {
  $elements = explode(':', $data);
  $cleaned[] = $elements[0];
}

【讨论】:

  • 啊哈!正是我需要的。谢谢!
【解决方案2】:

除非数组被引用,否则 foreach 操作的是指定数组的副本,而不是数组本身

$arr = array( 0 => 'A:B', 1 => 'B:C', 2 => 'C:D');
// foreach($arr as $val) will not work.
foreach($arr as &$val) { // prefix $val with & to make it a reference to actual array values and not just copy a copy.
    $temp = explode(':',$val);
    $val = $temp[0];
}
var_dump($arr);

输出:

array(3) {
  [0]=>
  string(1) "A"
  [1]=>
  string(1) "B"
  [2]=>
  &string(1) "C"
}

【讨论】:

  • 嘿,我也尝试了你的回复,因为它看起来我也需要做,但由于某种原因我无法让它工作......不太清楚为什么,它并不复杂而且这已经是关于我的结构的问题了。哦,好吧,还是谢谢你:)
猜你喜欢
  • 1970-01-01
  • 2012-02-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-12-09
  • 2019-10-22
  • 2016-02-27
相关资源
最近更新 更多