相关疑难解决方法(0)

PHP - 修改foreach循环中的当前对象

我想知道是否可以编辑foreach循环中正在处理的当前对象

我正在使用一组对象$questions,我想通过查找与我的数据库中的问题对象相关的答案.因此,对于每个问题,请获取答案对象并更新我的循环中的当前$question 内容,foreach以便我可以在其他地方输出/处理.

foreach($questions as $question){
    $question['answers'] = $answers_model->get_answers_by_question_id($question['question_id']);
}
Run Code Online (Sandbox Code Playgroud)

php arrays foreach object

101
推荐指数
2
解决办法
9万
查看次数

String替换数组PHP中的所有项

我想在数组中的所有项目中进行字符串替换.我有的是:

$row['c1'] = str_replace("&", "&", $row['c1']);
$row['c2'] = str_replace("&", "&", $row['c2']);
$row['c3'] = str_replace("&", "&", $row['c3']);
$row['c4'] = str_replace("&", "&", $row['c4']);   
$row['c5'] = str_replace("&", "&", $row['c5']);
$row['c6'] = str_replace("&", "&", $row['c6']);
$row['c7'] = str_replace("&", "&", $row['c7']);   
$row['c8'] = str_replace("&", "&", $row['c8']);
$row['c9'] = str_replace("&", "&", $row['c9']);
$row['c10'] = str_replace("&", "&", $row['c10']); 
Run Code Online (Sandbox Code Playgroud)

如何用更少的代码实现这一目标?我认为foreach声明可行,例如:

$columns = array($row['c1'], $row['c2'], $row['c3'], $row['c4'], $row['c5'], $row['c6'], $row['c7'], $row['c8'], $row['c9'], $row['c10']);

foreach ( $columns as $value){
   $value   = str_replace("&", "&", $value);
}
Run Code Online (Sandbox Code Playgroud)

但它不起作用.

php string foreach replace str-replace

11
推荐指数
1
解决办法
5万
查看次数

为什么我不能使用foreach循环更新数组中的数据?

我正在尝试对阵列中的数据执行清理工作,特别是将纪元时间转换为YYYY-MM-DD.

我最初尝试过这个功能:

foreach ($data as $row) {
    $row['eventdate'] = date('Y-m-d', $row['eventdate']);
}

echo '<pre>';
print_r($data);
echo '</pre>';
Run Code Online (Sandbox Code Playgroud)

但是,当我输出数据时,foreach循环没有更新数据.

以下for循环确实有效:

for ($i=0; $i<count($data); $i++) {
    $data[$i]['eventdate'] = date('Y-m-d', $data[$i]['eventdate']);
}
Run Code Online (Sandbox Code Playgroud)

为什么第一个循环失败而第二个循环失败?他们不一样吗?

php foreach for-loop

11
推荐指数
2
解决办法
6003
查看次数

PHP foreach 循环不更新值

如果如下所示的PHP程序存储在bug.php中,那么这个命令

php bug.php
Run Code Online (Sandbox Code Playgroud)

使用 PHP 7.0.33-0ubuntu0.16.04.1 (cli) ( NTS ) Zend Engine v3.0.0,版权所有 (c) 1998-2017 Zend Technologies 和 Zend OPcache v7.0.33-0ubuntu0.16.04.1 时将生成此输出,版权所有 (c) 1999-2017,Zend Technologies

输出:

Initial array
Array
(
    [0] => aa
    [1] => bb
)
j = 0  line = aa
element 0 is aa

j = 1  line = bb    <----------------------------------------------
element 1 is ***bb  <----------------------------------------------

Final array
Array
(
    [0] => aa
    [1] => ***bb
)
Run Code Online (Sandbox Code Playgroud)

注意上面标记的线。元素 $A[1] 是“***bb”,而 $line(foreach 应与键 1 关联)是“bb”。

这是一个错误,还是有一些我不知道的 PHP 微妙之处? …

php foreach

5
推荐指数
1
解决办法
2859
查看次数

关联数组的数组,向关联数组添加新元素

如果我有这样的数组:

array(2) {
  [0]=>
  array(2) {
    ["id"]=>
    string(2) "34"
    ["total"]=>
    string(6) "122337"
  },
[1]=>
  array(2) {
    ["id"]=>
    string(2) "43"
    ["total"]=>
    string(6) "232337"
  }
}
Run Code Online (Sandbox Code Playgroud)

我想为每个子数组添加一个新的键值,例如,它会像这样结束:

array(2) {
      [0]=>
      array(2) {
        ["id"]=>
        string(2) "34"
        ["total"]=>
        string(6) "122337"
        ["newkey"]=>
        string(6) "hihihi"
      },
    [1]=>
      array(2) {
        ["id"]=>
        string(2) "43"
        ["total"]=>
        string(6) "232337"
       ["newkey"]=>
        string(6) "hihihi"
      }
    }
Run Code Online (Sandbox Code Playgroud)

我该怎么办?

我试过像这样的foreach:

foreach($exterior_array as $inside_array) {
 $inside_array['newkey'] = "hihihi";
}
Run Code Online (Sandbox Code Playgroud)

但是一旦进入foreach,值就不会被保存.

php arrays associative-array

4
推荐指数
1
解决办法
3338
查看次数

PHP foreach更改数组值

如果你有一个类似下面的foreach循环,我知道你可以通过改变数组的当前元素$array[$key],但是还有一种方法可以改变它$value吗?

foreach($array as $key => $value){

}
Run Code Online (Sandbox Code Playgroud)

它可能非常简单,但我对PHP很新,所以请不要被我的问题烦恼:)

php foreach

3
推荐指数
1
解决办法
3298
查看次数

PHP:如何从 foreach 循环内部修改数组(通过引用)

可能的重复:
如何通过 foreach 循环修改数组的值?

为什么这不起作用?

$user_list_array = array(
    1 => array( "first_name" => "Jim" ),
    2 => array( "first_name" => "Bob" )
)

foreach ($user_list_array as $item ) {
    echo $item["first_name"];
    $item["last_name"] = "test";
} 

var_dump($user_list_array );
Run Code Online (Sandbox Code Playgroud)

我可以取回“first_name”,但不能添加“last_name”;

php arrays multidimensional-array

2
推荐指数
1
解决办法
808
查看次数

PHP changing array value in foreach

im quite new to php and as i was looking for info for last 2 hours, no examples seemed to help. i have what i think is called nested array? two of them. pretty much i need to be able to match id from different arrays. and detract the amount from stock.

<?php
$items = array(
array('id' => 34, 'name' => 'Kompiuterius ASUS ASX89', 'price' => 639.00, 'stock' => 3),
array('id' => 1008, 'name' => 'Monitorius AOC 27IPS', 'price' => …
Run Code Online (Sandbox Code Playgroud)

php arrays

1
推荐指数
1
解决办法
7006
查看次数

在PHP上添加数组上的字段

我正在尝试在数组中添加一个字段并返回它,但据说var_dump,没有对数组进行任何更改.执行if块中的指令,数据似乎正确.

function addLength($toAdd, $added){
   $result = $toAdd;
    foreach ($result as $row) {
        foreach ($added as $key => $value) {
            if($key == $row['id'] ){
                $row['length'] = $value;   
            }
        } 
    }
    var_dump($result);
    return $result;
}
Run Code Online (Sandbox Code Playgroud)

php

0
推荐指数
1
解决办法
1884
查看次数