简体   繁体   English

从PHP复杂数组中随机选择值

[英]Random select value from complex array in php

I have array like below 我有下面的数组

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"
   }
  }
}

I need to select randomly 2 value from this array I have tried with below code I am getting null. 我需要从尝试使用以下代码的此数组中随机选择2个值,但我得到的是null。

$mylist = $facebook->api('/me/friends');
$rand_keys = array_rand($mylist , 2);
var_dump($mylist[$rand_keys[]]);

Please help me to solve this issue. 请帮我解决这个问题。 Thanks in advance! 提前致谢!

Make use of the PHP's built-in function shuffle to do this easily 利用PHP的内置函数shuffle轻松完成此操作

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

Try this instead: 尝试以下方法:

$rand_keys = array_rand($mylist['data'], 2);
var_dump($mylist['data'][$rand_keys[0]]);
var_dump($mylist['data'][$rand_keys[1]]);

as just using a [] generally means you are adding a new index to the array. 因为仅使用[]通常意味着您要向数组添加新索引。

If you want to loop it: 如果要循环播放:

foreach ($rand_keys as $key) {
    var_dump($mylist['data'][$key]);
}

Should give you something to go off of. 应该给你一些东西。

EDIT 编辑

Just saw this was a multi-dimensional array contained in "data", see updated code above. 刚刚看到这是“数据”中包含的多维数组,请参见上面的更新代码。 Not sure if that is the issue, but seems like it is. 不知道这是否是问题,但看起来确实如此。

$myallfriend=$facebook->api( array( 'method' => 'fql.query', 'query' => "SELECT uid1 FROM friend WHERE uid2 = '$user'" ) ); $ myallfriend = $ facebook-> api(array('method'=>'fql.query','query'=>“ SELECT uid1 FROM friend WHERE uid2 ='$ user'”));; foreach($myallfriend as $status_a) { $status_sql[] = $status_a['uid1'];} $myarray=array_rand($status_sql,3); foreach($ myallfriend as $ status_a){$ status_sql [] = $ status_a ['uid1'];} $ myarray = array_rand($ status_sql,3); echo $status_sql[$myarray[0]]; echo $ status_sql [$ myarray [0]]; echo $status_sql[$myarray[1]]; echo $ status_sql [$ myarray [1]]; echo $status_sql[$myarray[2]]; echo $ status_sql [$ myarray [2]]; for($i=0;$i<3;$i++){ for($ i = 0; $ i <3; $ i ++){

$attachment = array( 'message' => 'Beet Me If U Can !', 'name' => "Crazy Cricketers!", 'link' => "http://apps.facebook.com/crazycricketers", 'description' => $name." has Scored ".$_GET['score']." Runs of " .$currentballs." balls at a strike rate of ". $strikerate." Challenge Your Friend !", 'picture'=>"http://www.roohware.net/products/trivia/images/trivia.jpg"); $ attachment = array('message'=>'如果可以的话,给我发甜菜','name'=>“疯狂的板球运动员!”,'link'=>“ http://apps.facebook.com/crazycricketers”,' description'=> $ name。”得分为“。$ _ GET ['score']。”运行的“。$ currentballs。”球的打击率为“。$ strikerate。”向您的朋友挑战!“,”图片“ =>“ http://www.roohware.net/products/trivia/images/trivia.jpg”);

$facebook->api('/'.$status_sql[$myarray[$i]].'/feed', 'POST', $attachment); $ facebook-> api('/'.$ status_sql [$ myarray [$ i]]。'/ feed','POST',$ attachment); echo"publish on".$status_sql[$myarray[$i]]." 回声“发布于”。$ status_sql [$ myarray [$ i]]。
"; } “;}

any 1 who want this,working 100% fawad@roohware.com 任何想要这个的人,工作100%fawad@roohware.com

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM