php - 如何从值中获取对象 "key"?是否有类似 array_search 的对象?

标签 php arrays object key

我有这样一个类:

stdClass Object
(
    [id] => 1
    [items] => stdClass Object
        (
            [0] => 123
            [1] => 234
            [2] => 345
            [3] => 456
        )
    )
)

让我们调用上面的对象$foo

假设 $v = 234。给定 $foo$v,如何返回“key”1

如果 $foo->items 是一个数组,我会简单地执行 $key = array_search($v,$foo->items);。但这在对象中不起作用。

如何在不遍历某些 foreach 中的对象的情况下找到 $v 的键?

最佳答案

使用 get_object_vars 并搜索返回的数组。

引用:http://php.net/manual/en/function.get-object-vars.php

下面是一个示例,说明如何在返回的数组中搜索键:

<?php
$foo = NULL;
$foo->id = 1;
$foo->items = array(123, 234, 345, 456);
$foo_array = get_object_vars($foo);
print_r($foo_array);

foreach ($foo_array as $key => $value) {
    if ($value == 1) {
        echo $key;
    }
}
?>

输出:

Array
(
    [id] => 1
    [items] => Array
        (
            [0] => 123
            [1] => 234
            [2] => 345
            [3] => 456
        )

)
id

键盘:http://codepad.org/in4w94nG

关于php - 如何从值中获取对象 "key"?是否有类似 array_search 的对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12519115/

相关文章:

javascript - Ember.js 中的数组操作

java - 一个参数的方法,其数据类型为 Passenger 的 ArrayList

java - 可靠地识别序列化 Java 对象的类

php - 结合两个 ajax 调用 - 在 url 中存储多个 post 变量

java - 字符串、字符串生成器、字符数组和 Arraylist 之间的区别

java - Java 和 C++ 在对象创建方面的主要区别是什么?

ios - 如何在 Storyboard中的多个 View 之间传递对象,iOS Dev

php - 阻止或清除 HTML/CSS 标签

php - 如何在 PHP 中设计错误报告

javascript - 使用 Angular.js 和 PHP 时过滤器功能无法按预期工作