【问题标题】:How to access values from inside multidemensional arrays php如何从多维数组php中访问值
【发布时间】:2023-03-24 02:12:02
【问题描述】:

好吧抱歉我重写了这个,因为我试图使用一个简化的例子,但我相信它更复杂,所以我试图让所有满足特定条件的用户,然后把它们放在一个数组中,然后打乱顺序和将用户放入数组块中。

从那里我做了一个 if / else 语句,说如果每个块都已满,是否有 ID,但我无法获取 ID:

//Get all users who are eligable
$eligable_users = get_users('meta_key=eligable&meta_value=1');


//Set all eligable users into an array
$eligable_user_array = array();
foreach ( $eligable_users as $users ) {
$eligable_user_array[] = $users;
}

//Shuffle users among arrays 
shuffle($eligable_user_array); 


//Change this to adjust chunk size 
$winning_array_chunk_size = 2;

//Create array chunks
$array_chunk = array_chunk($eligable_user_array , $winning_array_chunk_size , false);


//Foreach array chunk
foreach($array_chunk as $individual_winner_chunk) {


//If a chunk isnt filled igonre
if( sizeof($individual_winner_chunk) < $winning_array_chunk_size) {
    //Users in this chunk arnt entered into prize draw
} 

//For each filled chunk get a user
else{
        //print_r($individual_winner_chunk);

        //Get randomised users from each chunk
        $random_user_from_chunk = array_rand($individual_winner_chunk , 1);
        foreach($random_user_from_chunk as $userchunk){
            echo $userchunk->data->ID;
        }


    }

这是输出不正确的部分:

echo $userchunk->数据->ID;

【问题讨论】:

  • 输出是什么?请将其添加到问题中。
  • 输出是空白,但是如果我取消注释底部的 print_r,输出看起来像: rray ( [0] => WP_User Object ( [data] => stdClass Object ( [ID] => 7
  • 问题是你如何使用array_rand。请检查编辑后的答案。

标签: php arrays wordpress multidimensional-array


【解决方案1】:

您错误地使用了 array_rand 函数。

array_rand 返回随机键。 在这里查看更多信息:http://php.net/manual/en/function.array-rand.php

因此,如果您只需要一把钥匙,那么:

   $random_user_from_chunk = array_rand($individual_winner_chunk , 1);

   echo $individual_winner_chunk[$random_user_from_chunk]->data->ID;

如果需要更多随机用户,增加array_rand中的number选项

$random_user_from_chunk = array_rand($individual_winner_chunk , 2);
echo $individual_winner_chunk[$random_user_from_chunk[0]]->data->ID
echo $individual_winner_chunk[$random_user_from_chunk[1]]->data->ID

【讨论】:

  • 应该是->data->ID
  • 是的。已编辑。谢谢!
  • 谢谢。如果是解决方案,请接受答案。
【解决方案2】:

如果您的 $userlist 值是从 JSON 中获取的,那么您可以简单地申请将对象更改为关联数组:

$random_user = array_rand(json_decode($userlist, TRUE), 1);

然后你可以访问为:

foreach($random_user as $individual_user) {
echo $individual_user['data']['ID'];
}

【讨论】:

    猜你喜欢
    • 2013-06-12
    • 2013-09-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-29
    • 1970-01-01
    • 1970-01-01
    • 2017-10-28
    相关资源
    最近更新 更多