编写了一个缩短数组中字符串的函数.函数完成后不更改值


Wrote a function that shortens the strings in an array. Doesn't change the values after the function is finished

我一直在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 />';}