我不完全確定你在這裏想要什麼,所以這裏是你可以在zindex上運行的各種測試。這些全部使用foreach循環和array_key_exists。
如果你想檢查外陣列中的每個項目,看它是否有一個Z-索引:
這個循環遍歷每個元素,並簡單地檢查,如果該元素具有某種形式的Z-索引關鍵。
foreach($array as $key => $element) {
if(array_key_exists('zindex',$element)) {
echo "Key '$key' has a zindex of ".$element['zindex']."\n<br>\n";
} else {
echo "Fail!! Key '$key' has no zindex!\n<br>\n";
}
}
如果你只是在尋找引起任何Z-索引鍵都:
此遍歷,直到找到具有Z-索引的元素。如果找到zindex,則該函數返回true,否則返回false。
function find_zindex($array) {
foreach($array as $key => $element) {
if(array_key_exists('zindex',$element)) {
echo "Key '$key' has a zindex of ".$element['zindex']."\n<br>\n";
return true;
}
}
return false;
}
if(find_zindex($array)) {
echo "A zindex was found\n<br>\n";
} else {
echo "Fail: no zindex was found\n<br>\n";
}
如果你正在尋找您的陣列在一個特定的Z-索引值:
這遍歷,尋找具有特定值的特定Z-索引。如果找到,則返回外部數組的鍵。否則返回null。
function find_zindex($array, $search_key) {
foreach($array as $key => $element) {
if(array_key_exists('zindex',$element) && $element['zindex']==$search_key) {
echo "Key '$key' has a zindex of ".$element['zindex']."\n<br>\n";
return $key;
}
}
return null;
}
$key = find_zindex($array, 3);
if($key) {
echo "The zindex was found at '$key'\n<br>\n";
} else {
echo "Fail: the zindex was not found\n<br>\n";
}
$key = find_zindex($array, 4);
if($key) {
echo "The zindex was found at '$key'\n<br>\n";
} else {
echo "Fail: the zindex was not found\n<br>\n";
}
如果你想有一個特定的zIndex的每一個關鍵的數組:
這遍歷,構建包含每一個提供的Z-索引搜索值匹配元素的數組。完成後,它將返回新的元素數組。如果沒有找到,它將返回一個空數組,它將測試爲false。
function find_zindex($array, $search_key) {
$result = array();
foreach($array as $key => $element) {
if(array_key_exists('zindex',$element) && $element['zindex']==$search_key) {
echo "Key '$key' has a zindex of ".$element['zindex']."\n<br>\n";
$result[] = $key;
}
}
return $result;
}
$key = find_zindex($array, 3);
if($key) {
echo 'The zindex was found at:';
print_r($key);
echo "\n<br>\n";
} else {
echo "Fail: the zindex was not found\n<br>\n";
}
$key = find_zindex($array, 4);
if($key) {
echo 'The zindex was found at:';
print_r($key);
echo "\n<br>\n";
} else {
echo "Fail: the zindex was not found\n<br>\n";
}
如果你經常試圖通過Z-索引查找數據,你將要重新設計你的陣列:
這將創建一個只擁有第一個數組中的元素引用第二個陣列。如果你運行這個,你可以看到數據是共享的,因爲這兩個數組中的一個賦值將'name'設置爲'new_name'。請注意,外部數組的每個元素現在都有一個索引和一個zindex。
這假設$ array中的每個元素都有一個zindex,而zindex的值是唯一的。如果一些元素沒有zindex或者有重複的zindexes,那麼你需要修改這個。
$array = array(
'the-1'=> array('name'=>'lorem','pos'=>array('top'=>'90','left'=>'80'),'index'=>'the-1','zindex'=>2),
'the-2'=> array('name'=>'ipsum','pos'=>array('top'=>'190','left'=>'180'),'index'=>'the-2','zindex'=>1),
'the-3'=> array('name'=>'lorem ipsum','pos'=>array('top'=>'20','left'=>'30'),'index'=>'the-3','zindex'=>3)
);
$zarray = array();
foreach($array as &$value) {
$zarray[$value['zindex']] =& $value;
}
// optional: order the entries in zarray by their key
ksort($zarray)
print_r($array);
echo "\n<br>\n";
print_r($zarray);
echo "\n<br>\n<br>\n<br>\n<br>\n<br>\n";
$array['the-1']['name']='new_name';
print_r($array);
echo "\n<br>\n";
print_r($zarray);
「如何檢查Z-索引鍵上面PHP數組存在」 - 隨便找個地方/至少一次或你想檢查是否$陣列中的每個元素是一個)的陣列和b)具有索引/鍵'zindex'? – VolkerK