1

我有一个对象数组的示例,每次执行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)

4

3 回答 3

4
<?php
$my_array;
echo '<pre>'; print_r($my_array); echo '</pre>';
shuffle ($my_array);
echo '<pre>'; print_r($my_array); echo '</pre>';
?>

试试这个代码

于 2012-07-10T19:30:26.343 回答
3

但是对象在一个数组中,而不是另一个对象,所以你可以使用shuffle......

于 2012-07-10T19:24:35.897 回答
2

Shuffle 总是返回一个布尔值:

bool shuffle ( array &$array )

所以你不能像这样退货

return shuffle( $myAwesomeArray );

这就是我刚刚所做的,我想知道为什么它没有返回任何东西,因为你可能期待你的洗牌数组回来。

你只需要这样称呼它

shuffle( $myAwesomeArray );
return $myAwesomeArray;

一切都应该正常工作。

于 2013-07-11T08:46:14.010 回答