我想檢查陣列中是否存在值:diam-mm,如果該值不存在,請執行某些操作。
一個陣列可以有多個屬性,屬性名稱為:[PropertyType]->[Name]
我想我回圈到屬性并檢查 diam-mm 值是否存在,否則做一些事情,但由于回圈,他確實匯入了多次而不是一次的值。
一個具有屬性的陣列示例:
[2] => Array
(
[PropertyType] => Array
(
[Guid] =>
[DataType] => Text
[Name] => diam-mm
[Unit] =>
)
[BooleanValue] =>
[DateTimeValue] =>
[NumericValue] =>
[TextValue] => 400
[XmlValue] =>
[UrlValue] => 400
)
[3] => Array
(
[PropertyType] => Array
(
[Guid] =>
[DataType] => Text
[Name] => lengte-mm
[Unit] =>
)
[BooleanValue] =>
[DateTimeValue] =>
[NumericValue] =>
[TextValue] => 2000
[XmlValue] =>
[UrlValue] => 2000
)
uj5u.com熱心網友回復:
<?php
for ($i=0; $i <count($array) ; $i ) {
if($array[$i]['PropertyType']['Name']=="diam-mm"){
// your code
}
}
?>
uj5u.com熱心網友回復:
如果要檢查陣列鍵是否與值匹配,可以使用簡單的變數賦值來完成。但是,您需要遍歷每個陣列索引項并根據它的迭代列舉回圈。
要創建回圈,我建議使用count來計算陣列中的專案數量。我們將結果分配給一個變數:
$count = count($my_array);
請記住,count僅根據專案的實際數量來計算專案的數量,而不是根據它們的陣列索引。這意味著索引從零開始且索引為 0-30 的陣列將回傳 31 作為結果,count因為count將零索引計為實際計數值。
為了解決這個問題,我們需要從結果中減去 1 count:
$count = $count - 1;
然后我們可以使用計數作為for回圈中的重復次數。其中變數$i表示回圈正在經歷的迭代:
//Loop through each array index
for($i=0; $i <= $count; $i ){
//Assign the value of the array key to a variable
$value = $my_array[$i]['PropertyType']['Name'];
//Check if result string contains diam-mm
if(str_contains($value, 'diam-mm'){
echo 'The value matches!';
} else{
echo 'The value does not match!';
}
}
uj5u.com熱心網友回復:
試試這個功能,我希望這能回答你的問題...
function array_recursive_search_key_map($needle, $haystack) {
foreach($haystack as $first_level_key=>$value) {
if ($needle === $value) {
return array($first_level_key);
} elseif (is_array($value)) {
$callback = $this->array_recursive_search_key_map($needle, $value);
if ($callback) {
return array_merge(array($first_level_key), $callback);
}
}
}
return false;
}
如何使用
$yourValue = "diam-mm";
$array_keymap = array_recursive_search_key_map($yourValue, $yourArray);
var_dump($array_keymap);
輸出
Array
(
[0] => 0
[1] => PropertyType
[2] => Name
)
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/366740.html
上一篇:展平Powershell物件中的子陣列,包括父物件屬性
下一篇:將兩個陣列合并為一個物件
