【问题标题】:How to randomly select a value in an Array [duplicate]如何在数组中随机选择一个值[重复]
【发布时间】:2014-06-18 17:48:26
【问题描述】:

请注意,我已在此站点上阅读过类似的问题,但没有一个对我有用,这似乎至少对现在/对我来说是独一无二的。

我有以下数组;

[{"advert_id":"advert1"},{"advert_id":"advert2"},{"advert_id":"advert3"},{"advert_id":"advert4"},{"advert_id":"advert5"},{"advert_id":"advert6"},{"advert_id":"advert7"}]

当我使用 Laravel $adverts = Advert::select('advert_id')->get(); 从数据库中获取信息时,我实际上得到了数据

如何从中随机选择一个元素?

我尝试使用array_rand($adverts),但出现错误(array_rand() 期望参数 1 是数组,给定对象)

【问题讨论】:

  • json_decode($json, true);
  • 这不是 PHP 数组,您使用的是 JSON 表示法。您给出的错误表明您在某个时候将其转换为对象。您可能为此使用了json_decode。正如 Darren 指出的,您应该将第二个参数设置为 true
  • 或者,您可以尝试$adverts = get_object_vars($adverts),将对象转换为数组。
  • 好的,让我试试
  • 哇,很多人反对,但我不介意json_decode($json, true); 为我工作。感谢@Darren 的回答和@Jorn 的解释

标签: php arrays


【解决方案1】:

这是一个正确的答案,希望您可以将其标记为正确,以便其他人也能找到它。

您正在引用 array 但正在解析一个对象。 现在使用下面的json_decode() 并解析第二个参数,您明确要求返回一个数组而不是一个对象。

json_decode($array, true);

【讨论】:

    猜你喜欢
    • 2015-05-31
    • 2021-06-27
    • 2014-07-05
    • 2018-03-24
    • 2012-02-21
    • 1970-01-01
    • 2016-06-30
    • 2019-01-28
    • 2013-07-17
    相关资源
    最近更新 更多