- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我正在尝试用特定条件替换 array
值。
假设数组 $mark
有以下值
$mark = array(90,85);
只是正常的检查值,它正在回显正确的值
array_walk_recursive($mark, function (&$k) {
if($k==90){$k='4.0';}
if($k==85){$k='3.6';}
});
print_r($mark);
输出是
Array ( [0] => 4.0 [1] => 3.6 )
但是在应用大于或小于等条件时,它会返回错误的值。
array_walk_recursive($mark, function (&$k) {
if($k>=90){$k='4.0';}
if($k>=80 AND $k<90){$k='3.6';}
if($k<79){$k='2.8';}
});
print_r($mark);
输出是
Array ( [0] => 2.8 [1] => 2.8 )
最佳答案
每个if
正在测试前一个可能已经更改值之后的值。
当 $k
是90,第一个if
成功,将其更改为 4.0
.
第二个if
失败,因为 4.0
不在 80
之间和 90
.
第三个if
成功因为 4.0
小于 79
, 所以它将它更改为 2.8
.
你应该使用 elseif
所以它只在前一个失败时执行测试,然后它将始终测试 $k
的原始值.您也可以使用 else
对于最后一种情况。
array_walk_recursive($mark, function (&$k) {
if($k>=90) {
$k='4.0';
}
elseif($k>=80 AND $k<90) {
$k='3.6';
}
elseif($k<79) {
$k='2.8';
}
});
顺便说一句,您可能想使用 < 80
对于最后一个测试,或者只是 else
没有测试。当$k
正是79
, 你不会更新它。
关于php - 大于或小于 array_walk 递归,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54551862/
我有这个简单的代码: $postCopy = $_POST['adminpanel']; array_walk($postCopy, function($v, $k) { return '';
我不明白 array_walk($arr, 'intval'); 做了什么,我在下面的代码片段中注释掉了: 无论我是否使用它似乎都不会改变输出。 最佳答案 它的目的是应该将 $arr 的每一项都转换
我只是想知道是否有人知道为什么我不能使用 require_once 作为 array_walk 的回调。我可以将它包含在一个匿名函数中并运行它,但它给出了一个无效的回调错误: $includes =
我得到了三个带有某种分层预定义术语的数组 array("fruits", "yellow", "pineapple"); array("fruits", "yellow", "lemon"); arr
我有一个看起来像这样的列表: list = [1,2,3,4] 我想给每个值加 12。在 PHP 中,您可以使用 array_walk 来处理数组中的每个项目。是否有比执行 for 循环类似的功能或更
有没有办法从匿名函数内部停止 array_walk? 这里有一些示例代码(有效)来说明我的意思,它检查数组是否只有数值。 $valid = true; array_walk($parent, func
有没有一种方法可以让这个数组使用我的匿名函数来设置值? $url = array('dog', 'cat', 'fish'); array_walk($url, function(&$value, &
php array_walk 对数组中的每个元素应用用户自定义函数 array_walk 使用用户自定义函数对数组中的每个元素做回调处理 基本语法 bool array_walk ( arra
代码如下: /*函数array_walk():单一数组回调函数---对数组中的每个成员应用用户函数 * 1、语法:bool array_walk ( array &array
以下code does not work如预期。 $fruits = array('apple', 'orange', 'banana', 'cherry'); array_walk($fruits,
如何使用 array_walk 更改元素的值? 例如,这是我的数组, $items = array( 0 => array( "id" => "1", "tit
我在类中使用带有闭包的 array_walk 时遇到了一个奇怪的问题。在我使用 php 版本 5.4.7 的开发环境中不会出现问题,但在我的部署环境 5.3.3 中会出现问题。 以下代码在我的生产机器
我正在尝试使用 array_walk() 函数来处理数组: 'b1', 'n2' => 'b2', 'n3' => 'b3'); array_walk($array, function(&$val,
我想知道如何将更多参数传递给我的 array_walk.. $addresses = array('www.google.com', 'www.yahoo.com', 'www.microsoft.c
我正在尝试用特定条件替换 array 值。 假设数组 $mark 有以下值 $mark = array(90,85); 只是正常的检查值,它正在回显正确的值 array_walk_recursive(
我正在处理不是我编写的代码。我看到开发人员想要修剪数组的所有元素并使用了 array_walk() 但是声明一个 _trim 函数有什么意义,它所做的只是使用标准 修剪()? array_walk($
在这种情况下,我们将在 array_walk() 中返回 false。事实上,他们在官方文档中说: Returns TRUE on success or FALSE on failure. 甚至,如果
我目前正在使用 array_map 将回调应用于数组元素。但我希望能够像 array_walk 那样将参数传递给回调函数。我想我可以只使用 array_walk,但我需要返回值是一个数组,就像您使用
我正在使用数组函数将竖线分隔的字符串转换为关联数组。 $piper = "|k=f|p=t|e=r|t=m|"; $piper = explode("|",$piper); $piper = arra
php 开发经常遇到数组处理,会涉及到题目中这几个函数。这个函数功能类似,很多时候容易混淆。 array_walk: array_walk — 使用用户自定义函数对数组中的每个元素做回调
我是一名优秀的程序员,十分优秀!