我有一个对象数组的示例,每次进行foreach
循环时我都需要随机化它。
看起来shuffle
仅适用于数组。
有一件事是我无法将其转换为数组,因为它将成为我无法使用的STD object
,因为我的映射器的工作方式。
array(48) {
[0] => object(Friends_Model_Friends)#142 (4) {
["_id":protected] => NULL
["_tal":protected] => object(stdClass)#194 (3) {
["thumb"] => object(stdClass)#196 (6) {
["id"] => string(8) "10884697"
["type"] => string(1) "2"
["gallery"] => string(1) "1"
}
}
["_friend":protected] => string(7) "3492149"
["_dependent_table":protected] => NULL
}
[1] => object(Friends_Model_Friends)#195 (4) {
["_id":protected] => NULL
["_tal":protected] => object(stdClass)#143 (3) {
["thumb"] => object(stdClass)#202 (6) {
["id"] => string(8) "11160632"
["type"] => string(1) "2"
["gallery"] => string(1) "1"
}
}
["_friend":protected] => string(7) "3301541"
["_dependent_table":protected] => NULL
}
....
关于洗牌的任何想法?
修改 Zend_Debug::dump(shuffle($object));
返回bool(true)
答案 0 :(得分:4)
<?php
$my_array;
echo '<pre>'; print_r($my_array); echo '</pre>';
shuffle ($my_array);
echo '<pre>'; print_r($my_array); echo '</pre>';
?>
试试此代码
答案 1 :(得分:3)
但是对象在数组中,而不是另一个对象,因此您可以使用shuffle
...
答案 2 :(得分:1)
随机播放总是返回一个布尔值:
bool shuffle ( array &$array )
所以你不能像
一样返回它return shuffle( $myAwesomeArray );
这就是我刚才所做的事情,我想知道为什么它没有回馈任何东西,因为你可能期待你的洗牌阵列回来。
你只需要像这样称呼它
shuffle( $myAwesomeArray );
return $myAwesomeArray;
所有人都应该工作得很好。