Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何选择数组元素名称中包含数字?_Php_Arrays_Sorting_Select - Fatal编程技术网

Php 如何选择数组元素名称中包含数字?

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' (

起初,我是初学者

我想将元素从一个数组推送到另一个不包含数字的数组

我有一份清单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' (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”将用于新阵列。有数字和一个字符。这是我真正的问题。因为第一个元素不是数字,而是数字与字符串的组合。我编辑了代码,并为问题添加了第二个解决方案,只过滤没有任何数字字符的字符串。太好了,谢谢!