如何在多维关联数组中检索随机值?
How do I retrieve a random value in multidimensional associative array?
我有一个数组,其中包含我发布的帖子的信息。
$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 功能,但它似乎不起作用。
$k = array_rand($DexArray);
$v = $array[$k]['href'];
我收到一条错误消息:undefined variable: array in this line "$v = $array[$k]['href'];"
你有解决办法吗?
应该是
$k = array_rand($DexArray);
$v = $DexArray[$k]['href'];
这是一个有效的调试 :) link
你的东西里有一个挥之不去的,
。 $array
一开始就没有定义,所以这就是错误告诉你的内容。
执行代码,它将 return 来自多维 php 数组的随机值。
<?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/>";
}
?>
这是另一个解决方案,它将 return 随机数组的索引。
$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);
我有一个数组,其中包含我发布的帖子的信息。
$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 功能,但它似乎不起作用。
$k = array_rand($DexArray);
$v = $array[$k]['href'];
我收到一条错误消息:undefined variable: array in this line "$v = $array[$k]['href'];"
你有解决办法吗?
应该是
$k = array_rand($DexArray);
$v = $DexArray[$k]['href'];
这是一个有效的调试 :) link
你的东西里有一个挥之不去的,
。 $array
一开始就没有定义,所以这就是错误告诉你的内容。
执行代码,它将 return 来自多维 php 数组的随机值。
<?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/>";
}
?>
这是另一个解决方案,它将 return 随机数组的索引。
$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);