[英]PHP: How to replace last X elements in array
我有一个数组如下
$myArr = array("red", "green", "blue", "yellow");
并想用单词HIDDEN
替换它的最后一个X
(其元素的数量)
例如,如果我想替换最后 2 个元素,那么
foreach ($myArr as $color){
echo $color . '<br />';
}
应该是这样的
red
green
HIDDEN
HIDDEN
我在考虑function
和三个 arguments
function hide_elm($array, $howmany = 0, $hide_msg = 'HIDDEN'){
}
但不能处理数组这样做。
这是另一种选择。
function hide_elm($array, $howMany = 0, $hide_msg = 'HIDDEN')
{
// remove elements
$array = array_slice($array, 0, -$howMany);
// add them back
for ($i = 0; $i < $howMany; $i++) {
$array[] = $hide_msg;
}
return $array;
}
那这个呢
function hide_elm($array, $howmany = 0, $hide_msg = 'HIDDEN'){
$start=sizeof($array)-$howmany;
for($i=$start;$i<sizeof($array);$i++){
$array[$i]=$hide_msg;
}
return $array;
}
function hide_elm($array, $howMany = 0, $hide_msg = 'HIDDEN'){
$elementCounter = 0;
for ($i=0; $i < $howMany; $i++) {
$array[count($array) - $elementCounter - 1] = $hide_msg;
$elementCounter ++;
}
return $array;
}
$myArr = array("red", "green", "blue", "yellow");
print_r(hide_elm($myArr, 3));
function hide_elm($array, $howMany = 0, $hide_msg = 'HIDDEN'){
$elementCounter = 0;
for ($i=0; $i < $howMany; $i++) {
$array[count($array) - $elementCounter - 1] = $hide_msg;
$elementCounter ++;
}
return $array;
}
Array
(
[0] => red
[1] => HIDDEN
[2] => HIDDEN
[3] => HIDDEN
)
您可以反向遍历数组并更改值,直到达到指定的$howmany
:
function hide_elm($array, $howmany = 0, $hide_msg = 'HIDDEN'){
$len = count($array);
if($howmany < 0 || $howmany > $len) return $array;
$result = array_merge(array(), $array);
$count = 0;
for($i = $len-1; $count != $howmany; $i--) {
$result[$i] = $hide_msg;
$count++;
}
return $result;
}
$myArr = array("red", "green", "blue", "yellow");
print_r( hide_elm($myArr, 2, 'HIDDEN') );
echo "<br>";
print_r( hide_elm($myArr, 3, 'HIDDEN') );
echo "<br>";
print_r( hide_elm($myArr, 4, 'HIDDEN') );
echo "<br>";
print_r( hide_elm($myArr, -1, 'HIDDEN') );
echo "<br>";
print_r( hide_elm($myArr, 5, 'HIDDEN') );
Output:
Array ( [0] => red [1] => green [2] => HIDDEN [3] => HIDDEN )
Array ( [0] => red [1] => HIDDEN [2] => HIDDEN [3] => HIDDEN )
Array ( [0] => HIDDEN [1] => HIDDEN [2] => HIDDEN [3] => HIDDEN )
Array ( [0] => red [1] => green [2] => blue [3] => yellow )
Array ( [0] => red [1] => green [2] => blue [3] => yellow )
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.