我有这个std类对象数组:
$myarray =
Array
(
[0] => stdClass Object
(
[text] => lorem lorem
[src] => web
)
[1] => stdClass Object
(
[text] => ipsum ipsum
[src] => book
)
)
我有$value = "lorem lorem"
,我想在数组中查找并返回该对象的src
。
这是我的尝试:
foreach($myarray -> 'text' as $key => $text_value){
if($value == $text_value){
$new_src = $myarray -> 'src';
}
}
答案 0 :(得分:1)
你几乎就在那里,你需要遍历数组,然后检查对象的text
属性:
foreach ($myarray as $object) {
if ($object->text == $text_value){
$new_src = $object->src;
}
}
这将迭代数组项并获取每个StdClass
对象,然后您可以使用该对象将text
与$text_value
进行比较,如果匹配则更新$new_src
。
答案 1 :(得分:1)
您可以按$item->text == $value
$value = "lorem lorem"
$array = array_filter($myarray, function($v) use($value) {
return $v->text == $value;
});
$srcs = array_map(function($v){return $v->src;}, $array);
print_r($srcs);
答案 2 :(得分:0)
我认为这会有所帮助,我稍微改变了#1答案
$src = getSrc($myarray, $value);
function getSrc($objArray, $text) {
foreach($objArray as $obj){
if ($obj->text == $value)
return $obj->src;
}
return false;
}