首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何检索多维关联数组中的随机值?

如何检索多维关联数组中的随机值?
EN

Stack Overflow用户
提问于 2015-01-15 10:44:40
回答 3查看 159关注 0票数 0

我有一个数组,其中包含关于我所做的帖子的信息。

代码语言:javascript
复制
$DexArray = array(

            array(
            'url'       => "http://i.imgur.com/ObXLdd6C.jpg",
            'headline'  => "Dronningens Nytårstale",
            'subline'   => "Tallene bag talen og årets spilforslag",
            'href'      => "nytaarstale.php",
            'postedby'  => "kris",
            'postedurl' => "https://www.facebook.com/dataanalyticsdk",
            'dato'      => "21. december, 2014"
            ),

            array(
            'url'       => "http://i.imgur.com/sxddhOe.jpg",
            'headline'  => "Endless Jewelry",
            'subline'   => "Are there really endless possibilities?",
            'href'      => "endless.php",
            'postedby'  => "Nikolaj Thulstrup",
            'postedurl' => "kris",
            'dato'      => "10. december, 2014"
            ),

它存储在多维关联数组中。我试图在数组中检索一个随机的'href‘值,并将其存储为一个变量。

我尝试过使用array_rand函数,但它似乎不起作用。

代码语言:javascript
复制
$k = array_rand($DexArray);
$v = $array[$k]['href'];

我收到一条错误消息,上面写着:未定义的变量:数组,在这一行中"$v =$array$k;

你有办法解决这个问题吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-01-15 10:48:26

它应该是

代码语言:javascript
复制
$k = array_rand($DexArray);
$v = $DexArray[$k]['href'];
票数 0
EN

Stack Overflow用户

发布于 2015-01-15 10:50:36

下面是一个有效的调试:) 链接 --在您的东西中有一个挥之不去的,。从一开始就没有定义过$array,所以这就是错误告诉您的。

票数 0
EN

Stack Overflow用户

发布于 2015-01-15 10:53:24

执行代码,它将从多维php数组返回随机值。

代码语言:javascript
复制
<?php
            $filter_field = array();
            $original_items = array(
            array(1, 'stuff1', 'info1', 'response1', 'info1', 'response1'), array(2, 'stuff2', 'info2', 'response2', 'info2', 'response2'), array(3, 'stuff3', 'info3', 'response3', 'info3', 'response3'), array(4, 'stuff4', 'info4', 'response4', 'info4', 'response4'));

            for ($x = 0; $x < sizeof($original_items); $x++) { 
               array_push($filter_field, $original_items[$x][0]);
            } 

            shuffle($filter_field);

            echo "<br/><br/><br/>";

            for ($x = 0; $x < sizeof($original_items); $x++) { 
            $k = $filter_field[$x];
             for ($y = 0; $y < 5; $y++) {
                echo $original_items[$k-1][$y];
             }
             echo "<br/><br/>";
            }
            ?>

以下是返回随机数组索引的另一种解决方案。

代码语言:javascript
复制
    $var = array(  
                array("a", "one"),  
                array("b", "two"),  
                array("c", "three"),  
                array("d", "four"),  
                array("e", "five"),  
                array("f", "six"),  
                array("g", "seven")  
            );  
            // array_rand returns the INDEX to the randomly 
            // chosen value, use that to access the array. 
            $finalVar = $var[array_rand($var)];  

            print_r($finalVar); 
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27961646

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档