php中复杂数组的随机选择值

php中复杂数组的随机选择值,php,arrays,Php,Arrays,我有如下数组 array(1) { ["data"]=> array(6) { [0]=> array(2) { ["name"]=> string(10) "Wang" ["id"]=> string(9) "500011929" } [1]=> array(2) { ["name"]=> string(17) "Singh"

我有如下数组

array(1) {
  ["data"]=>
  array(6) {
    [0]=>
    array(2) {
      ["name"]=>
      string(10) "Wang"
      ["id"]=>
      string(9) "500011929"
    }
    [1]=>
    array(2) {
      ["name"]=>

      string(17) "Singh"
      ["id"]=>
      string(9) "500033614"
    }
    [2]=>
    array(2) {
      ["name"]=>
      string(9) "Adam"
      ["id"]=>
      string(9) "5014177"
    }
    [3]=>
    array(2) {
      ["name"]=>
      string(23) "Siva"
      ["id"]=>
      string(9) "5036644"
    }
    [4]=>
    array(2) {
      ["name"]=>
      string(11) "Chu"
      ["id"]=>
      string(9) "5044111"
    }
    [5]=>
    array(2) {
      ["name"]=>

      string(18) "Matta"
      ["id"]=>
      string(9) "56657897"
   }
  }
}
我需要从这个数组中随机选择2个值,我用下面的代码尝试过,我得到空值

$mylist = $facebook->api('/me/friends');
$rand_keys = array_rand($mylist , 2);
var_dump($mylist[$rand_keys[]]);
请帮我解决这个问题。 提前谢谢

试试这个:

$rand_keys = array_rand($mylist['data'], 2);
var_dump($mylist['data'][$rand_keys[0]]);
var_dump($mylist['data'][$rand_keys[1]]);
因为仅仅使用
[]
通常意味着您正在向数组添加一个新索引

如果要循环,请执行以下操作:

foreach ($rand_keys as $key) {
    var_dump($mylist['data'][$key]);
}
应该给你一些东西来发泄

编辑


刚才看到这是一个包含在“数据”中的多维数组,请参见上面的更新代码。不确定这是否是问题所在,但似乎是

利用PHP的内置函数shuffle轻松完成此操作

$my_friends = $facebook->api('/me/friends');
$temp= $my_friends ['data'];
shuffle($temp);
$mylist=  array_slice($temp,0,2);

$myallfriend=$facebook->api(数组('method'=>'fql.query','query'=>“从朋友中选择uid1,其中uid2='$user'); foreach($myallfriend作为$status\u a){ $status_sql[]=$status_a['uid1'];} $myarray=array\u rand($status\u sql,3); echo$status_sql[$myarray[0]]; echo$status_sql[$myarray[1]]; echo$status_sql[$myarray[2]]; 对于($i=0;$i’如果可以,请告诉我!’, “名字”=>“疯狂的板球运动员!”, '链接'=>“http://apps.facebook.com/crazycricketers", 'description'=>$name.“已得分”$\u获得['score']”.“$currentbolls.”的运行次数。球的命中率为“$strikerate.”向你的朋友发起挑战, '图片'=>“http://www.roohware.net/products/trivia/images/trivia.jpg");

$facebook->api('/'.$status_sql[$myarray[$i]].'/feed','POST',$attachment); echo“发布在“$status\u sql[$myarray[$i]]”上“
”; }


任何想要这个的人,100%工作fawad@roohware.com

$rand\u keys
var\u dump
能为您提供什么?我得到的结果是空$rand\u keys=array\u rand($mylist,2);变量转储($rand\u密钥);当您对
$mylist
执行
var\u dump
时,这会为您提供上面发布的数组吗?
null
出现的唯一方法是为
array\u rand
函数指定一个非数组。因此,我将验证
$mylist
实际上是一个数组,而不是
序列化字符串
或仅仅是
字符串
。它是来自facebook api$mylist=$facebook->api(“/me/friends”)的数组;$rand\u keys=array\u rand($mylist,2);foreach($rand_keys as$key){var_dump($mylist['data'][$key])}您似乎缺少一些要点<如果第一个参数不是有效数组,
array\u rand
将返回code>null。验证
$mylist
实际上是数组,而不是数组的
对象
字符串
版本。除了兼容的PHP
array
变量之外,这将不适用于其他对象。