从数组中的一个单词中删除一个字符 PHP - 只显示一个单词

Remove one character from a word in an array PHP - only one word displays

在"no first characters"部分只显示数组的最后一个元素,不知道为什么。需要整个数组来显示。有人可以建议什么吗? 我应该将 foreach 循环留在那里还是使用其他东西来完成任务? 只需要删除数组中每个随机单词的第一个字母。

function generate($length)
{



$a1 = str_split('0123456789');
$a2 = str_split('abcdefghijklmnopqrstuvwxyz'); 
$a3 = str_split('!#$');

$result = '';

    for ($i = 0; $i < $length; $i ++) 
    {
        $values = array_merge($a1,$a2,$a3);
        $x = rand(0, count($values)-1);
        $result .= $values[$x];//taking one symbol  
    }

        return $result;
}

  $array = array();
  $count = 4; // number of elements
  $length = 5;

    for ($i = 0; $i < $count; $i++) {
        $array[] = generate($length);

    }

echo '<br>';

echo 'Original array: ' , '<pre>';
    print_r($array);

echo '</pre>', '<br>';

echo 'Sorted: ';
    sort($array);
echo '<pre>';
    print_r($array);

echo '</pre>' ,'<br>';

echo 'No first characters: ';
     foreach($array as $word)
     {
        $array = substr($word,1); 

     }

echo '<pre>';
    print_r($array);

echo '</pre>' ,'<br>';

如果你需要从每个单词中删除一个字母,那你为什么要重写$array?使用带有 & 的简单循环,它通过引用传递变量:

foreach($array as &$word)
{
    $word = substr($word,1); 
}

最好最短的方法;

echo 'No first characters: ';
  $array = array_map(function($word){ return substr($word,1); }, $array);