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

时间:2018-05-26 17:53:35

标签: php arrays substr

在“无第一个字符”部分中,只显示数组的最后一个元素,不确定原因。需要整个阵列才能显示。有人会建议吗? 我应该离开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>';

2 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:0)

最好和最短的方法;

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