Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/246.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 - Fatal编程技术网

数组操作帮助php制作短语

数组操作帮助php制作短语,php,Php,我将有四个单词列表数组 $array1 = array('red','blue','green');//it can have more elements $array2 = array('ball','radio','bat'); $array3 = array('free','$10','bonus','2free'); $array4 = array('Ny','california'); 使用这4个单词数组,其中可以包含0到任意数量的元素,例如上面的out需要 red ball

我将有四个单词列表数组

$array1 = array('red','blue','green');//it can have more elements

$array2 = array('ball','radio','bat');

$array3 = array('free','$10','bonus','2free');

$array4 = array('Ny','california');
使用这4个单词数组,其中可以包含0到任意数量的元素,例如上面的out需要

red ball free Ny

red ball free california

red ball $10 Ny

red ball $10 california

red ball bonus Ny

red ball bonus california

red ball 2free Ny

red ball 2free california

red radio free Ny
类似地,对于阵列中可能的所有元素

对我来说,最多2个阵列是很容易的,但是对于4个阵列,我有点困惑。
请帮助

最简单的方法是使用嵌套循环:

$array1 = array('red','blue','green');
$array2 = array('ball','radio','bat');
$array3 = array('free','$10','bonus','2free');
$array4 = array('Ny','california');

for ($i = 0, $maxi = count($array1); $i < $maxi; $i++) {
    for ($j = 0, $maxj = count($array2); $j < $maxj; $j++) {
        for ($k = 0, $maxk = count($array3); $k < $maxk; $k++) {
            for ($l = 0, $maxl = count($array4); $l < $maxl; $l++) {
                echo '<p>' . $array1[$i] . ' ' . $array2[$j] . ' ' . $array3[$k] . ' ' . $array4[$l] . '</p>';
            }
        }
    }
}
$array1=数组('red'、'blue'、'green');
$array2=数组('ball'、'radio'、'bat');
$array3=数组('free'、'$10'、'bonus'、'2free');
$array4=数组('Ny','california');
对于($i=0,$maxi=count($array1);$i<$maxi;$i++){
对于($j=0,$maxj=count($array2);$j<$maxj;$j++){
对于($k=0,$maxk=count($array3);$k<$maxk;$k++){
对于($l=0,$maxl=count($array4);$l<$maxl;$l++){
回音“”.$array1[$i]”.$array2[$j]”.$array3[$k]”.$array4[$l]”

; } } } }
我会尝试一下,但是如果中间的任何数组中没有任何元素计数为0怎么办?如果任何数组为空,它将不会输出任何内容。在这种情况下,确保有输出的最简单方法可能是在循环之前检查每个数组,如果数组为空,则添加一个带空格的元素。
foreach($array1 as $first)
  foreach($array2 as $second)
    foreach($array3 as $third)
      foreach($array4 as $fourth)
      {
        echo $first." ".$second." ".$third." ".$fourth;
      }