下面的函數,只需檢查給定String
是否包含在給定的數組中。如果是這樣,它增加了含有String
到一個新的數組,並最後返回結果的元件...
<?php
$arr = [
['name'=>'GTX 970', 'price'=>123],
['name'=>'GTX 980', 'price'=>321],
['name'=>'GTX 980', 'price'=>350],
['name'=>'GTX 980', 'price'=>300],
['name'=>'ABC 980', 'price'=>305],
['name'=>'JHK 980', 'price'=>375],
['name'=>'LMN 105', 'price'=>250],
];
var_dump(searchArrayTree($arr, 'GTX 980'));
function searchArrayTree($array, $searchValue){
$result = [];
foreach($array as $iKey=>$item){
$searchKey = array_search($searchValue, $item);
if($searchKey){
$result[] = $item;
}
}
return $result;
}
上述var_dump()
(這也是demoed here)生產:
array (size=3)
0 =>
array (size=2)
'name' => string 'GTX 980' (length=7)
'price' => int 321
1 =>
array (size=2)
'name' => string 'GTX 980' (length=7)
'price' => int 350
2 =>
array (size=2)
'name' => string 'GTX 980' (length=7)
'price' => int 300
或者,使用regex
,以便您可以在GTX 980等相關字詞組範圍內縮小搜索範圍,並且仍然可以與GTX 980的所有條目進行匹配:
<?php
$arr = [
['name'=>'GTX 970', 'price'=>123],
['name'=>'GTX 980', 'price'=>321],
['name'=>'GTX 980', 'price'=>350],
['name'=>'GTX 980', 'price'=>300],
['name'=>'ABC 980', 'price'=>305],
['name'=>'JHK 980', 'price'=>375],
['name'=>'Le EVGA GTX 980', 'price'=>250],
['name'=>'GIGABYTE GEFORCE GTX 980 W3. ', 'price'=>250],
];
var_dump(searchArrayTree($arr, 'GTX 980'));
function searchArrayTree($array, $searchTerm){
$result = [];
foreach($array as $iKey=>$item){
$itemPrice = $item['price'];
$itemName = $item['name'];
$searchKey = preg_match("#" . preg_quote($searchTerm). "#", $itemName);
if($searchKey){
$result[] = $item;
}
}
return $result;
}
的var_dump
(demoed here)的結果是這樣的:
array (size=5)
0 =>
array (size=2)
'name' => string 'GTX 980' (length=7)
'price' => int 321
1 =>
array (size=2)
'name' => string 'GTX 980' (length=7)
'price' => int 350
2 =>
array (size=2)
'name' => string 'GTX 980' (length=7)
'price' => int 300
3 =>
array (size=2)
'name' => string 'Le EVGA GTX 980' (length=15)
'price' => int 250
4 =>
array (size=2)
'name' => string 'GIGABYTE GEFORCE GTX 980 W3. ' (length=29)
'price' => int 250
'$ strpos'是一個變量,'strpos'是一個函數。 –
好吧,現在我需要一個新的TEXTEDITOR可見文本! –
請注意,數組的第一個元素是另一個數組 – ChaseTheSun