如果第一個字符是某個字母,在這種情況下是字母D,我試圖找到解除元素的方法...我不確定是否有數組函數做一些這樣的事情,或者如果一個替代品會做的伎倆?基於第一個字符取消設置數組元素
[0] => Aaron [1] => Bob [2] => Carl [3] => Dale [4] => Devin [5] => Dylan
取消設置,與字母 「d」 開頭的話會導致:
[0] => Aaron [1] => Bob [2] => Carl
如果第一個字符是某個字母,在這種情況下是字母D,我試圖找到解除元素的方法...我不確定是否有數組函數做一些這樣的事情,或者如果一個替代品會做的伎倆?基於第一個字符取消設置數組元素
[0] => Aaron [1] => Bob [2] => Carl [3] => Dale [4] => Devin [5] => Dylan
取消設置,與字母 「d」 開頭的話會導致:
[0] => Aaron [1] => Bob [2] => Carl
您可以使用array_filter功能:
function filter_firstchar($var){
return $var[0] != 'D';
}
$result = array_filter($arr, 'filter_firstchar');
如果信你將被過濾將會改變,你可以建立一個非常基本的過濾類:
class Filter_FirstChar {
private $char;
function __construct($char){
$this->char = $char;
}
function filter($var){
return $var[0] != $this->char;
}
}
$result = array_filter($arr, array(new Filter_FirstChar('A'), 'filter'));
你需要使用'!='「如果回調函數返回true,則輸入的當前值返回結果數組」 – GWW 2011-06-02 18:34:14
@GWW:良好的調用!我太快地閱讀了這個問題,並認爲他想保留以'D'開頭的條目。我的錯。 – brianreavis 2011-06-02 18:36:23
我收到意想不到的T_STRING,期待班上第2行的T_FUNCTION? – 2011-06-02 18:42:51
$i = 0;
$n = count($array);
while ($i < $n) {
if ($array[$i][0] == 'D')
unset($array[$i]);
++$i;
}
foreach($array as $key => $name)
{
if(substr($name,0,1) == "D")
{
unset($array[$key]);
}
}
是一個方法,可以很好地幫助你。
手動循環已完成任務。但作爲單線程選項:
$array = preg_grep('/^(?!D)/', $array);
您使用的是哪個版本的PHP? – GWW 2011-06-02 18:30:44
PHP版本5.3.5 – 2011-06-02 18:39:20
很酷,你可以使用閉包,然後 – GWW 2011-06-02 18:42:57