我一直在StackOverflow上寻找答案,应用不同的建议,但没有解决我的问题。
我正在尝试编写一个函数,该函数接受一个数组并将数组中的每个字符串缩短为 3 个字符。这是我写的代码:
$days_of_week = array("monday", "tuesday", "wednesday", "thursday", "friday", "saturday", "sunday");
function stringParse(array $string) {
for($i = 0; $i < count($string); $i++) {
$string = str_replace($string[$i], substr($string[$i],0,3), $string);
echo $string[$i].'<br />';
}
return $string;
}
stringParse($days_of_week);
foreach($days_of_week as $stry) {echo $stry.'<br />';}
我也尝试替换:
$string = str_replace($string[$i], substr($string[$i],0,3), $string);
跟:
$string[$i] = substr($string[$i],0,3);
但这也没有用。
我得到的输出是:
mon
tue
wed
thu
fri
sat
sun
monday
tuesday
wednesday
thursday
friday
saturday
sunday
这显然不会在调用函数后更改 String 值。关于我做错了什么有什么建议吗?
尝试:
$days_of_week = array("monday", "tuesday", "wednesday", "thursday", "friday", "saturday", "sunday");
$short_days_of_week = array_map(function($value) { return substr($value, 0, 3); }, $days_of_week);
var_dump($short_days_of_week);
$days_of_week = stringParse($days_of_week);
您需要将返回值分配给变量:-)
此代码对我有用:
<?php
$days_of_week = array("monday", "tuesday", "wednesday", "thursday", "friday", "saturday", "sunday");
function stringParse(array $string) {
for($i = 0; $i < count($string); $i++) {
$string = str_replace($string[$i], substr($string[$i],0,3), $string);
echo $string[$i].'<br />';
}
return $string;
}
$days_of_week = stringParse($days_of_week);
foreach($days_of_week as $stry) {echo $stry.'<br />';}
您创建的函数返回一个数组,您必须将其分配给变量。
$newarray = stringParse($days_of_week);
foreach($newarray as $stry) {echo $stry.'<br />';}