我想看看如果數組具有相同的值多次,例如:如何檢查是否數組有值多次
$array=array('val1','val2','val3','val1');
正如你所看到的,上面的陣列中,有2個x val1。 要搜索如果一個數組包含一個值,我可以用in_array做到這一點:
$search=in_array('val1',$array);
而且由於VAL1在數組存在,它將返回true,但我需要的,如果該值被發現多次返回true。
我想看看如果數組具有相同的值多次,例如:如何檢查是否數組有值多次
$array=array('val1','val2','val3','val1');
正如你所看到的,上面的陣列中,有2個x val1。 要搜索如果一個數組包含一個值,我可以用in_array做到這一點:
$search=in_array('val1',$array);
而且由於VAL1在數組存在,它將返回true,但我需要的,如果該值被發現多次返回true。
你可以利用的array_keys()
一個不太知名的功能,該功能用於返回的數組的鍵作爲新的陣列(即,沒有值。)
它接受可選的第二個參數search
,它允許您規定您只希望返回那些與您的搜索對應的值。所以:
$arr = array('one', 'two', 'one', 'three');
$indexes = array_keys($arr, 'one'); //array(0, 2)
通過提供search_value作爲array_keys的第二個參數。該函數將僅返回包含該值的數組的鍵。
$array=array('val1','val2','val3','val1');
$search = array_keys($array, 'val1');
作爲參考,Please READ
請解釋一下?你的建議爲什麼會起作用? – 2014-10-07 11:46:02
@PetruLebada我已經添加了參考答案。 – 2014-10-07 11:48:30
這個功能應該做的伎倆:
function check_multi($testVal,$arr) {
foreach($arr as $curVal) {
$counts[$curVal]++;
}
if(isset($counts[$val])
return $counts[$val];
else
return null
}
嘗試
<?php
$array = array('val1','val2','val3','val1');
$cnt = array_count_values($array);
echo $cnt['val1'];
你的建議它很棒,但我有一個問題,即時搜索的價值,實際上是一個$ _POST ['val1'],我應該如何建立語法? $ cnt($ _ POST ['val1'])這很好? – 2014-10-07 12:08:53
$ _POST是數組,嘗試array_count_values($ _ POST)['val1']; – Xrymz 2014-10-07 12:10:52
此語法不起作用... – 2014-10-07 12:15:11
你確定這個語法正確嗎?我在編輯器中遇到了一些語法錯誤 – 2014-10-07 11:52:48
@Petru - 您使用的是哪個版本的PHP?這是數組解引用,它是在PHP 5.4.0中引入的 – 2014-10-07 11:53:16
最後一個版本 – 2014-10-07 11:53:44
您將獲得以下陣列[array_count_values()](http://www.php.net/manual/en/function.array-count-values.php ) – 2014-10-07 11:46:57
array_count_values()函數計算數組的所有值。我只想看看數組中是否有重複值。 – 2014-10-07 11:48:19
RTFM:array_count_values()使用數組的值作爲鍵__和它們的頻率___作爲值返回 – 2014-10-07 11:50:09