我有以下的PHP數組:從PHP數組如果存在刪除值
Array
(
[0] => 750
[1] => 563
[2] => 605
[3] => 598
[4] => 593
)
我需要用PHP來執行陣列上的下列行動:
- 搜索陣列對於一個值(值將在 變量;我們稱之爲
$number
)。如果數組中存在值 ,請將其刪除。
如果有人能夠引導我如何做到這一點,將不勝感激。
說明:如果使它更容易,我可以形成數組,使鍵與數值相同。
我有以下的PHP數組:從PHP數組如果存在刪除值
Array
(
[0] => 750
[1] => 563
[2] => 605
[3] => 598
[4] => 593
)
我需要用PHP來執行陣列上的下列行動:
$number
)。如果數組中存在值 ,請將其刪除。如果有人能夠引導我如何做到這一點,將不勝感激。
說明:如果使它更容易,我可以形成數組,使鍵與數值相同。
$array = array_unique($array) // removes dupicate values
while(false !== ($num = array_search($num, $array))){
unset($array[$num]);
}
$max = max($array);
將搜索價值$ NUM所有鍵和取消他們
while循環應特別檢查「!== false」,因爲如果找到第一個元素(索引0),則代碼不會取消設置該元素。 – styfle
@genesisφ - 感謝您的回答。 「與Josh Randall的解密方法相比,你覺得如何? – stefmikhail
@stefmikhail:他的人有點複雜和困難。 – genesis
可以說你$array
$array = array_unique($array) // removes dupicate values
$array = arsort($array)
$variable = $array[0] // the maximum value in the array, and place it in a variable.
$key = array_search($array, $number);
if($key){
unset($array[$key]) // Search array for a value, value is present in array, remove it.
}
非常感謝您提供如此出色的答案。我將能夠查看每個功能並更好地理解它。再次感謝! – stefmikhail
array_search()
和unset()
似乎對你的問題的樣本數據的好方法。我只是爲了比較而展示一種不同的方式(或者如果您的用例與您在此處發佈的用例略有不同)。
方法:(Demo)
$array=[750,563,605,598,593];
// if removing just one number apply the number as an array element
$number=605;
var_export(array_diff($array,[$number]));
// if you are performing this task with more than one $number, make $numbers=array() and do the same...
$numbers=[605,563]; // order doesn't matter
var_export(array_diff($array,$numbers));
// if you need to re-index the output array, use array_values()...
$numbers=[605,563]; // order doesn't matter
var_export(array_values(array_diff($array,$numbers)));
輸出:
array (
0 => 750,
1 => 563,
3 => 598,
4 => 593,
)
array (
0 => 750,
3 => 598,
4 => 593,
)
array (
0 => 750,
1 => 598,
2 => 593,
)
對於神起見 - 閱讀文檔http://ru2.php.net/manual/en/ref.array。 php – zerkms
這是3個完全不同的問題。查看編號爲3的[Finding Min and Max](http://stackoverflow.com/questions/1428800/getting-the-min-and-max-values-from-a-php-array)問題。 – styfle
好吧,我已經設法找到最小值和最大值,並刪除重複項,但如何刪除特定值(如果存在)?我將編輯這個問題,僅限於此。 – stefmikhail