Php 如何根据用户id从对象数组创建新数组?

Php 如何根据用户id从对象数组创建新数组?,php,mysql,arrays,wordpress,object,Php,Mysql,Arrays,Wordpress,Object,在某些情况下,我在循环对象数组并显示其中的数据时遇到问题 我希望该网页显示以下内容: <p>John Doe</p> <p>William Green</p> <p>Jane Smith</p> 当我在网页上输出信息时,我希望它如下所示: <p>John Doe</p> <p>William Green</p> <p>Jane Smith</p> 约

在某些情况下,我在循环对象数组并显示其中的数据时遇到问题

我希望该网页显示以下内容:

<p>John Doe</p> <p>William Green</p> <p>Jane Smith</p>
当我在网页上输出信息时,我希望它如下所示:

<p>John Doe</p> <p>William Green</p> <p>Jane Smith</p>
约翰·多伊

威廉·格林

简·史密斯


也许我需要遍历对象并基于用户ID构建新的数组?请不要提供带有echo或print\r的代码。只有“return”可以用于此项目。

那么
$您的\u对象
已经按
umeta\u id
用户\u id
字段排序了吗

如果没有,您可以使用:

然后简单地说:

$str = '';
for($i=0;$i<count($your_object);$i+=2){
  $str .= "<p>".$your_object[$i]->meta_value." "$your_object[$i+1]->meta_value."</p> ";
}
return $str; // this var contain all your data in string
$str='';
对于($i=0;$imeta_值)。“$your_对象[$i+1]->meta_值。”

”; } return$str;//此变量包含字符串中的所有数据

希望这有帮助!

这将生成名和姓对:

$user_group = array();

ksort($user_group, SORT_NUMERIC);

foreach ($users as $key => $item) {
    $name_meta = get_object_vars($item);
    foreach ($name_meta as $meta_in => $names) {
        if ($names == 'first_name') {
            $user_group[$item->user_id]['first_name'] = $name_meta['meta_value'];
        }
        if ($names == 'last_name') {
            $user_group[$item->user_id]['last_name'] = $name_meta['meta_value'];
        }
    }
}
foreach ($user_group as $name) {
    echo "<p>" . $name['first_name'] . " " . $name['last_name'] . "</p>";
}
输出:

array(3) {
[1]=>
array(2) {
    ["first_name"]=>
    string(4) "John"
    ["last_name"]=>
    string(3) "Doe"
}
[2]=>
array(2) {
    ["first_name"]=>
    string(4) "Jane"
    ["last_name"]=>
    string(5) "Smith"
}
[3]=>
array(2) {
    ["first_name"]=>
    string(7) "William"
    ["last_name"]=>
    string(5) "Green"
}
}
和打印用户名对:

$user_group = array();

ksort($user_group, SORT_NUMERIC);

foreach ($users as $key => $item) {
    $name_meta = get_object_vars($item);
    foreach ($name_meta as $meta_in => $names) {
        if ($names == 'first_name') {
            $user_group[$item->user_id]['first_name'] = $name_meta['meta_value'];
        }
        if ($names == 'last_name') {
            $user_group[$item->user_id]['last_name'] = $name_meta['meta_value'];
        }
    }
}
foreach ($user_group as $name) {
    echo "<p>" . $name['first_name'] . " " . $name['last_name'] . "</p>";
}
foreach($user\u group as$name){
回声“”$name['first_name']。“$name['last_name']。”

”; }
我用我的数据库查询变量替换了$users,它工作得很好。Kudos Hasta…非常感谢..foreach($users as$key=>$item)使用$user\u group[$item->user\u id]的行正在抛出此错误:注意:未定义属性:stdClass::$user\u id。是否仍要改进此错误?无需担心…我已经解决了。我只需要更新我的SELECT语句。我很高兴能够提供帮助;)