Php 如何选择数组元素名称中包含数字?
起初,我是初学者 我想将元素从一个数组推送到另一个不包含数字的数组 我有一份清单1:Php 如何选择数组元素名称中包含数字?,php,arrays,sorting,select,Php,Arrays,Sorting,Select,起初,我是初学者 我想将元素从一个数组推送到另一个不包含数字的数组 我有一份清单1: 0 => string '142221A' (length=7) 1 => string 'hOUSES' (length=6) 2 => string 'bOOKS' (length=5) 3 => string 'sHOES' (length=5) 4 => string '92921' (length=5) 5 => string '12231' (
0 => string '142221A' (length=7)
1 => string 'hOUSES' (length=6)
2 => string 'bOOKS' (length=5)
3 => string 'sHOES' (length=5)
4 => string '92921' (length=5)
5 => string '12231' (length=5)
6 => string 'cARS' (length=4)
7 => string 'tOYS' (length=4)
我想要的输出如下,array2:
0 => string 'hOUSES' (length=6)
1 => string 'bOOKS' (length=5)
2 => string 'sHOES' (length=5)
3 => string 'cARS' (length=4)
4 => string 'tOYS' (length=4)
我不想要一个解决方案,我想要它的方法。在PHP中,您可以使用
is\u numeric()
方法检查字符串是否只是一个数字,如下所示:
$elements = ['142221A','hOUSES','bOOKS','sHOES','92921','12231','cARS','tOYS'];
$string_array = [];
foreach ($elements as $element) {
if(!is_numeric($element)) {
array_push($string_array, $element);
}
}
print_r($string_array);
$elements = ['142221A','hOUSES','bOOKS','sHOES','92921','12231','cARS','tOYS'];
$just_string = [];
foreach ($elements as $element) {
//it will check for the element which has a digit number inside of it or not
//if it doesn't contain any number then it will be added to new array
if(preg_match('~[0-9]~', $element) != 1){
array_push($just_string, $element);
}
}
print_r($just_string);
但是,如果要过滤数组中的元素,使其仅包含其中没有任何数值的元素,请使用以下方法:
$elements = ['142221A','hOUSES','bOOKS','sHOES','92921','12231','cARS','tOYS'];
$string_array = [];
foreach ($elements as $element) {
if(!is_numeric($element)) {
array_push($string_array, $element);
}
}
print_r($string_array);
$elements = ['142221A','hOUSES','bOOKS','sHOES','92921','12231','cARS','tOYS'];
$just_string = [];
foreach ($elements as $element) {
//it will check for the element which has a digit number inside of it or not
//if it doesn't contain any number then it will be added to new array
if(preg_match('~[0-9]~', $element) != 1){
array_push($just_string, $element);
}
}
print_r($just_string);
使用带有回调函数的
array\u filter()
,该函数可检查值是否包含数字。您有许多未决问题,可能值得查看其中一些问题,并在适当时关闭它们-谢谢!但使用此方法,第一个“142221A”将用于新阵列。有数字和一个字符。这是我真正的问题。因为第一个元素不是数字,而是数字与字符串的组合。我编辑了代码,并为问题添加了第二个解决方案,只过滤没有任何数字字符的字符串。太好了,谢谢!