Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.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_Multidimensional Array - Fatal编程技术网

Php 如何循环多维数组以从每种颜色中获得随机图像?

Php 如何循环多维数组以从每种颜色中获得随机图像?,php,arrays,multidimensional-array,Php,Arrays,Multidimensional Array,我希望在下面的数组中循环,然后用每个颜色数组中的一个随机图像填充一个。我很难理解如何访问特定的颜色数组。。。我需要打圈吗?或者array\u rand()就足够了吗?我该怎么办 $colors=数组( “绿色”=>数组( “images/green1.jpg”, “images/green2.jpg”, ‘images/green3.jpg’, “images/green4.jpg”, “images/green5.jpg” ), “红色”=>数组( “/images/red1.jpg”, “/

我希望在下面的数组中循环,然后用每个颜色数组中的一个随机图像填充一个
。我很难理解如何访问特定的颜色数组。。。我需要打圈吗?或者
array\u rand()
就足够了吗?我该怎么办

$colors=数组(
“绿色”=>数组(
“images/green1.jpg”,
“images/green2.jpg”,
‘images/green3.jpg’,
“images/green4.jpg”,
“images/green5.jpg”
),
“红色”=>数组(
“/images/red1.jpg”,
“/images/red2.jpg”,
“/images/red3.jpg”,
“/images/red4.jpg”,
“/images/red5.jpg”
),
“蓝色”=>数组(
“/images/blue1.jpg”,
“/images/blue2.jpg”,
“/images/blue3.jpg”,
“/images/blue4.jpg”,
“/images/blue5.jpg”
),
“紫色”=>数组(
“/images/purple1.jpg”,
“/images/purple2.jpg”,
“/images/purple3.jpg”,
“/images/purple4.jpg”,
“/images/purple5.jpg”
)
);
颜色
  • “来自“绿色”阵列的1个img将放在此处”
  • “1个来自“红色”阵列的img将放在这里”
  • “蓝色阵列中的1个img将放在此处”
  • “紫色阵列中的1个img将放在这里”
foreach($colors作为$color){
$image=array\u rand($color);
回显“
  • ”.$color[$image]。
  • ”; }
    foreach($colors作为$color){
    $image=array\u rand($color);
    回显“
  • ”.$color[$image]。
  • ”; }
    如您所述,可以使用,但需要循环使用颜色。对于每个图像,获取一个随机图像:

    $arr = array();
    foreach($colors as $k=>$v){
        $arr[] = $v[array_rand($v)];
    }
    
    print_r($arr);
    
    产出1:

    Array
    (
        [0] => images/green3.jpg
        [1] => /images/red3.jpg
        [2] => /images/blue2.jpg
        [3] => /images/purple1.jpg
    )
    
    再次运行:

    Array
    (
        [0] => images/green5.jpg
        [1] => /images/red3.jpg
        [2] => /images/blue1.jpg
        [3] => /images/purple4.jpg
    )
    

    如果您想像问题中那样输出它,它应该是这样的:

    // div span ul
    $arr = array();
    foreach($colors as $k=>$v){
        echo '<li><img src="' . $v[array_rand($v)] . '"></li>';
    }
    // /div /ul
    
    //div span ul
    $arr=array();
    foreach($k=>v的颜色){
    回音“
  • ”; } ///div/ul

    旁注:

    • 数组中的
      绿色
      URL缺少前导的
      /
      (或者其他颜色都有备用的,我不知道)
    • 此代码不检查图像是否存在(/)
    如您所述,可以使用,但需要循环使用颜色。对于每个图像,获取一个随机图像:

    $arr = array();
    foreach($colors as $k=>$v){
        $arr[] = $v[array_rand($v)];
    }
    
    print_r($arr);
    
    产出1:

    Array
    (
        [0] => images/green3.jpg
        [1] => /images/red3.jpg
        [2] => /images/blue2.jpg
        [3] => /images/purple1.jpg
    )
    
    再次运行:

    Array
    (
        [0] => images/green5.jpg
        [1] => /images/red3.jpg
        [2] => /images/blue1.jpg
        [3] => /images/purple4.jpg
    )
    

    如果您想像问题中那样输出它,它应该是这样的:

    // div span ul
    $arr = array();
    foreach($colors as $k=>$v){
        echo '<li><img src="' . $v[array_rand($v)] . '"></li>';
    }
    // /div /ul
    
    //div span ul
    $arr=array();
    foreach($k=>v的颜色){
    回音“
  • ”; } ///div/ul

    旁注:

    • 数组中的
      绿色
      URL缺少前导的
      /
      (或者其他颜色都有备用的,我不知道)
    • 此代码不检查图像是否存在(/)

    我想做一些与

    foreach ($colors as $color){
         //This gets you each color array in turn, in here you can 
         //use array_rand() to get a random entry from each array.
    
    }
    

    我想做一些类似的事情

    foreach ($colors as $color){
         //This gets you each color array in turn, in here you can 
         //use array_rand() to get a random entry from each array.
    
    }
    
    这对我很有用:

    <?php
    $colors = array(
    'green' => array(
    'images/green1.jpg',
    'images/green2.jpg',
    'images/green3.jpg',
    'images/green4.jpg',
    'images/green5.jpg'
    ),
    'red' => array(
    '/images/red1.jpg',
    '/images/red2.jpg',
    '/images/red3.jpg',
    '/images/red4.jpg',
    '/images/red5.jpg'
    ),
    'blue' => array(
    '/images/blue1.jpg',
    '/images/blue2.jpg',
    '/images/blue3.jpg',
    '/images/blue4.jpg',
    '/images/blue5.jpg'
    ),
    'purple' => array(
    '/images/purple1.jpg',
    '/images/purple2.jpg',
    '/images/purple3.jpg',
    '/images/purple4.jpg',
    '/images/purple5.jpg'
    )
    );
    ?>
    <div>
        <span>Colors</span>
        <ul>
            <?php
            foreach ($colors as $key=>$value){
                echo '<li>'.$value[array_rand($value,1)]."</li>";
            }
    ?>
        </ul>
    </div>
    
    
    颜色
    
    这对我很有用:

    <?php
    $colors = array(
    'green' => array(
    'images/green1.jpg',
    'images/green2.jpg',
    'images/green3.jpg',
    'images/green4.jpg',
    'images/green5.jpg'
    ),
    'red' => array(
    '/images/red1.jpg',
    '/images/red2.jpg',
    '/images/red3.jpg',
    '/images/red4.jpg',
    '/images/red5.jpg'
    ),
    'blue' => array(
    '/images/blue1.jpg',
    '/images/blue2.jpg',
    '/images/blue3.jpg',
    '/images/blue4.jpg',
    '/images/blue5.jpg'
    ),
    'purple' => array(
    '/images/purple1.jpg',
    '/images/purple2.jpg',
    '/images/purple3.jpg',
    '/images/purple4.jpg',
    '/images/purple5.jpg'
    )
    );
    ?>
    <div>
        <span>Colors</span>
        <ul>
            <?php
            foreach ($colors as $key=>$value){
                echo '<li>'.$value[array_rand($value,1)]."</li>";
            }
    ?>
        </ul>
    </div>
    
    
    颜色
    

    谢谢!这正是我要找的。使用多维数组会让我头疼…@airconductor,没问题。我很乐意帮忙。我知道在这个问题中数组看起来很格式化,但是做了一个
    echo';打印(数组名称);回声'帮助很大。至少对我来说是这样…好建议,下次我处理数组时,我会尝试一下。干杯谢谢!这正是我要找的。使用多维数组会让我头疼…@airconductor,没问题。我很乐意帮忙。我知道在这个问题中数组看起来很格式化,但是做了一个
    echo';打印(数组名称);回声'帮助很大。至少对我来说是这样…好建议,下次我处理数组时,我会尝试一下。干杯您应该始终在代码后面提供信息。您应该始终在代码后面提供信息。