【问题标题】:array random multidimensional数组随机多维
【发布时间】:2015-07-21 05:50:19
【问题描述】:

嗨,这是我的数组,我想得到如下所示的一维数组,请帮助任何人

 Array
(
[Maruti Suzuki] => Array
    (
        [0] => Swift
        [1] => Ritz
        [2] => Omni
        [3] => New Swift DZire
        [4] => Ertiga
        [5] => Eeco
    )

[Chevrolet] => Array
    (
        [0] => Cruze
    )

)

这是我的数组我想要这个数组的结果像这样

array(
       [Maruti Suzuki] => Swift
       [Maruti Suzuki] => Ritz
       [Maruti Suzuki] => Omini
       [Maruti Suzuki] => Eeco
       [Chevrolet] => Cruze

     )

【问题讨论】:

    标签: php arrays


    【解决方案1】:

    编辑 [手动] 构建自己的新数组

      $result[] = $your_array['Maruti Suzuki'][0];
      $result[] = $your_array['Maruti Suzuki'][1];
      $result[] = $your_array['Maruti Suzuki'][2];
      $result[] = $your_array['Maruti Suzuki'][5];
      $result[] = $your_array['Chevrolet'][0];
    

    随机使用你的数组

     <?php
       $res  = call_user_func_array('array_merge', $your_array);
       $new = array_rand($res);
       $result = array();
       foreach($new as $key) $result[] = $res[$key];
    

    随机排列数组并将其限制为 5 次使用

     <?php
       $res  = call_user_func_array('array_merge', $your_array);
       $new = array_rand($res,5);
       $result = array();
       foreach($new as $key) $result[] = $res[$key];
    

    $result 中是您的随机新数组,在这种情况下带有新的 keys

    【讨论】:

    • 马鲁蒂铃木和雪佛兰如何拿到钥匙
    • 你是认真的吗?请更新您的问题或您的目标,如果您寻找另一个结果作为描述
    • 是的......根据要求,您的答案得到了满足......但现在我必须用 maruti suzuki 和 4 用 Chevrolet 获得钥匙 0-3
    【解决方案2】:

    试试这个,我已经做了你想要的。

    //sample array
    $car = array
    (
        'Maruti Suzuki' => array('Swift', 'Ritz', 'Omni', 'New Swift DZire', 'Ertiga', 'Eeco'),
        'Chevrolet' => array('Cruze')
    );
    
    $j = 0;
    foreach ($car as $key => $value) 
    {
        $count = count($value);
        for($i = 0; $i <$count;$i++)
        {
            $allCar[$key."~".$value[$i]] = $value[$i];
            $j++;   
        }
    }
    echo "<pre>";
    print_r($allCar);
    
    ?>
    

    现在,您可以通过关键的 Maruti Suzuki 和 Chevrolet 轻松获得价值。

    【讨论】:

    • 不可能使用这两个索引获取所有值,对于同一个索引,它可以在最后交换 key 的值,你只有两个值,即 [Maruti Suzuki] => Eeco, [Chevrolet] => Cruze,如果您能看到我的示例,您可以轻松检索索引和值。
    【解决方案3】:

    只需将call_user_func_array 用作

    $result = call_user_func_array('array_merge', $your_array);
    

    已编辑:

    $arr = Array('Maruti Suzuki' => Array('Swift', 'Ritz', 'Omni', 'New Swift DZire', 'Ertiga', 'Eeco'), 'Chevrolet' => Array('Cruze'));
    $result = array();
    foreach($arr as $key => $value){
        $result[$key] = implode(',',$value);
    }
    

    【讨论】:

    • 马鲁蒂铃木和雪佛兰如何拿到钥匙
    • 对不起,我认为这不是你的问题,或者我读错了
    • 你能再检查一下我编辑过的问题吗
    • 您发布为预期输出的数组是不可能的Reason why its not possible 但您可以有另一个选项可以分隔您可以使用逗号分隔的数组值作为array([Maruti Suzuki] =&gt; Swift,Ritz,Omini,Eeco [Chevrolet] =&gt; Cruze) 我将添加一个答案也一样
    • 对不起,我没听懂
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-01-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-20
    • 1970-01-01
    相关资源
    最近更新 更多