Php 按键值搜索数组的元素

Php 按键值搜索数组的元素,php,keyvaluepair,Php,Keyvaluepair,我有下面的PHP代码,它通过键名搜索数组并返回与搜索结果相等的结果。出于好奇,我怎么能做到这一点,无论我搜索什么,结果都将是名称键值等于“A”的元素?简而言之,如何检索名称为“A”的元素 $jSearchResult[] = $ajProducts[$i]->name = "A"; 我尝试了以下方法,但无效: $jSearchResult[] = $ajProducts[$i]->name = "A"; 请帮助我,因为我只是不知道如何通过键值检索数组的元素,但是我确信它一定非常简

我有下面的PHP代码,它通过键名搜索数组并返回与搜索结果相等的结果。出于好奇,我怎么能做到这一点,无论我搜索什么,结果都将是名称键值等于“A”的元素?简而言之,如何检索名称为“A”的元素

$jSearchResult[] = $ajProducts[$i]->name = "A";
我尝试了以下方法,但无效:

$jSearchResult[] = $ajProducts[$i]->name = "A";
请帮助我,因为我只是不知道如何通过键值检索数组的元素,但是我确信它一定非常简单

$jSearchResult[] = $ajProducts[$i]->name = "A";
<?php

//DATA coming from the BROWSER
$sSearch = $_GET['search'];
//TURN it into UPPERCASE
strtoupper( $sSearch );

//GETTING from the TEXT FILE:
$sajProducts = file_get_contents( 'products.txt' );
$ajProducts = json_decode( $sajProducts );

$match_found = false;
//Collect all matching result in an array 
$jSearchResult = array();
//LOOPING THROUGH THE ARRAY OF PRODUCTS
for ( $i=0; $i< count( $ajProducts ); $i++ ) {

    if ( $sSearch == $ajProducts[$i]->name ) {
         $jSearchResult[] = $ajProducts[$i]->name;
         $match_found = true;    
    }
}
//if there is a match display the product
if ( $match_found ) {
    echo json_encode ( $jSearchResult );
    exit;
}
//if not display ALL products
else { 

     echo json_encode ( $ajProducts );
     exit;
}

?>

如果要
匹配
名称键
值等于
“A”
元素,则只需进行
检查
,名称键的值等于
“A”
,如-

$jSearchResult[] = $ajProducts[$i]->name = "A";
foreach ($ajProducts as $ajProduct ) {

   if ( "A" == $ajProduct->name ) {
     $jSearchResult[] = $ajProduct->name;
     $match_found = true;    
   }
}

如果要
匹配
名称键
值等于
“A”
元素,则只需进行
检查
,名称键的值等于
“A”
,如-

$jSearchResult[] = $ajProducts[$i]->name = "A";
foreach ($ajProducts as $ajProduct ) {

   if ( "A" == $ajProduct->name ) {
     $jSearchResult[] = $ajProduct->name;
     $match_found = true;    
   }
}

有一个php函数可以做到这一点:

$jSearchResult[] = $ajProducts[$i]->name = "A";
这将使
$ajProducts
中的所有对象的
name
属性设置为
'A'

$jSearchResult[] = $ajProducts[$i]->name = "A";
要查看是否有任何结果:

$jSearchResult[] = $ajProducts[$i]->name = "A";
$matchFound = !empty($searchResult);

有一个php函数可以做到这一点:

$jSearchResult[] = $ajProducts[$i]->name = "A";
这将使
$ajProducts
中的所有对象的
name
属性设置为
'A'

$jSearchResult[] = $ajProducts[$i]->name = "A";
要查看是否有任何结果:

$jSearchResult[] = $ajProducts[$i]->name = "A";
$matchFound = !empty($searchResult);

$array['A']
也许吧?但是由于我们看不到数组的结构…请
转储($ajProducts)
并向我们展示,这样其他人就可以更好地理解
$array['A']
?但是由于我们没有看到数组的结构,请
dump($ajProducts)
并向我们展示,这样其他人可以更好地理解betterit是一个很好的解决方案。你能解释一下为什么仅仅写这篇文章是行不通的吗<代码>$jSearchResult=$ajProducts->name=='A'
因为
$ajProducts
是一个数组,成员取消引用(箭头运算符)不适用于数组,只适用于对象
name
是隐式产品类型对象的属性,表达式中需要该类型的变量才能有效。这是一个很好的解决方案。你能解释一下为什么仅仅写这篇文章是行不通的吗<代码>$jSearchResult=$ajProducts->name=='A'
因为
$ajProducts
是一个数组,成员取消引用(箭头运算符)不适用于数组,只适用于对象
name
是隐式产品类型的对象的属性,表达式中需要该类型的变量才能有效。