如何编辑此foreach循环,以便我可以使用strpos
查看q
中是否找到label
?
结果数组将包含这些值。
$q
可能是anna
或ann
或reas john
<?php
$q = $_GET["q"];
if (!$q) return;
$data = Array(
Array(
'label' => 'anna c13',
'category' => 'Products'
),
Array(
'label' => 'anders andersson',
'category' => 'People'
),
Array(
'label' => 'andreas johnson',
'category' => 'People'
)
);
$result = array();
foreach ($data as $value) {
array_push($result, array(
"label" => $value["label"],
"category" => $value["category"]
));
}
$json = json_encode($result);
echo $json;
?>
答案 0 :(得分:1)
这将输出$ data中的每个数组,其中$ q位于'label'中。
<?php
if( !isset( $_GET["q"] )) return;
$q = $_GET["q"];
$data = Array(
Array(
'label' => 'anna c13',
'category' => 'Products'
),
Array(
'label' => 'anders andersson',
'category' => 'People'
),
Array(
'label' => 'andreas johnson',
'category' => 'People'
)
);
$result = array();
foreach ($data as $value) {
if( strpos( $value['label'], $q ) !== false ) {
$result[] = $value;
}
}
$json = json_encode($result);
echo $json;
?>
答案 1 :(得分:0)
您尚未为$data
数组定义键 - 因此它会自动采用以下形式:
array(
0=>array(...),
1=>array(...),
2=>array(...)
)
这意味着你在int上使用strtolower
- 这可能就是它失败的原因。
答案 2 :(得分:0)
foreach ($data as $value) {
if(strpos($value['label'], $q) !== false){
$result[] = $value;
}
}