Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从PHP数组中的一个单词中删除一个字符-仅显示一个单词_Php_Arrays_Substr - Fatal编程技术网

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

从PHP数组中的一个单词中删除一个字符-仅显示一个单词,php,arrays,substr,Php,Arrays,Substr,在“无第一个字符”部分中,仅显示数组的最后一个元素,不确定原因。需要显示整个阵列。有人能提出什么建议吗? 我应该将foreach循环留在那里,还是使用其他方法来完成任务? 只需要删除数组中每个随机字的第一个字母 function generate($length) { $a1 = str_split('0123456789'); $a2 = str_split('abcdefghijklmnopqrstuvwxyz'); $a3 = str_split('!#$'); $result

在“无第一个字符”部分中,仅显示数组的最后一个元素,不确定原因。需要显示整个阵列。有人能提出什么建议吗? 我应该将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>';
函数生成($length)
{
$a1=str_分割('0123456789');
$a2=str_split('abcdefghijklmnopqrstuvwxyz');
$a3=STRU分割(“!”);
$result='';
对于($i=0;$i<$length;$i++)
{
$values=数组合并($a1、$a2、$a3);
$x=兰特(0,计数($value)-1);
$result.=$values[$x];//取一个符号
}
返回$result;
}
$array=array();
$count=4;//元素数
$length=5;
对于($i=0;$i<$count;$i++){
$array[]=生成($length);
}
回声“
”; 回显“原始数组:”,“”;
foreach($array as &$word)
{
    $word = substr($word,1); 
}
打印(数组); 回音“,”
”; 回声“排序:”; 排序($数组); 回声'; 打印(数组); 回音“,”
”; 回显“没有第一个字符:”; foreach($word形式的数组) { $array=substr($word,1); } 回声'; 打印(数组); 回音“,”
”;
如果需要从每个单词中删除一个字母,那么为什么要重写
$array
?将简单循环与通过引用传递变量的
&
一起使用:


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


最佳和最短的方法


最佳和最短的方法


谢谢你的帮助。老实说,甚至忘记了这是一个选项。在使用引用(
&
)和
foreach
循环时要非常小心:有关详细信息,请参阅上的红色大警告。最佳做法是不为此目的使用引用。相反,请使用数组键(例如,
foreach($array as$key=>$value){$array[$key]='newvalue';}
),或者,如果确实使用引用,则使用循环后的变量。谢谢您的建议谢谢您的帮助。老实说,甚至忘记了这是一个选项。在使用引用(
&
)和
foreach
循环时要非常小心:有关详细信息,请参阅上的红色大警告。最佳做法是不为此目的使用引用。相反,请使用数组键(例如,
foreach($array as$key=>$value){$array[$key]='newvalue';}
),或者,如果确实使用引用,则使用循环后的变量。感谢您的建议Simpler.Simpler。
echo 'No first characters: ';
  $array = array_map(function($word){ return substr($word,1); }, $array);