使用通配符的PHP搜索数组?

使用通配符的PHP搜索数组?,php,arrays,search,Php,Arrays,Search,假设我有以下数组,其中包含: Array ( [0] => 099/3274-6974 [1] => 099/12-365898 [2] => 001/323-9139 [3] => 002/3274-6974 [4] => 000/3623-8888 [5] => 001/323-9139 [6] => www.somesite.com ) 其中: 以000/、002/和001/

假设我有以下数组,其中包含:

Array (
     [0] => 099/3274-6974
     [1] => 099/12-365898
     [2] => 001/323-9139
     [3] => 002/3274-6974
     [4] => 000/3623-8888
     [5] => 001/323-9139
     [6] => www.somesite.com
)
其中:

  • 000/、002/和001/
    开头的值表示移动(手机)电话号码
  • 099/
    开头的值表示电话(固定)号码
  • www.
    开头的值表示网站
我需要将给定的数组转换为3个新数组,每个数组都包含适当的信息,比如arrayTelephone、arrayMobile、arraySite


_数组中的函数只有在我知道给定数组中键的整个值时才起作用,这不是我的情况。

创建三个空数组,使用
foreach
循环源数组,检查每个值(regexp很适合),并将项添加到各自的数组中。

创建三个空数组,使用foreach循环源数组,检查每个值(regexp很适合),并将项目添加到各自的数组中。

循环所有项目,并根据前4个字符将其排序到适当的数组中

$arrayTelephone = array();
$arrayMobile = array();
$arraySite = array();

foreach($data as $item) {
    switch(substr($item, 0, 4)) {
        case '000/':
        case '001/':
        case '002/':
            $arrayMobile[] = $item;
            break;
        case '099/':
            $arrayTelephone[] = $item;
            break;
        case 'www.':
            $arraySite[] = $item;
            break;
    }
}

循环遍历所有项目,并根据前4个字符将它们排序到适当的数组中

$arrayTelephone = array();
$arrayMobile = array();
$arraySite = array();

foreach($data as $item) {
    switch(substr($item, 0, 4)) {
        case '000/':
        case '001/':
        case '002/':
            $arrayMobile[] = $item;
            break;
        case '099/':
            $arrayTelephone[] = $item;
            break;
        case 'www.':
            $arraySite[] = $item;
            break;
    }
}

可以在数组上循环,并根据条件将值推送到正确的新数组。例如:

<?php

$fixed_array = array();

foreach ($data_array as $data) {
    if (strpos($data, '099') === 0) {
        $fixed_array[] = $data;
    }

    if ....
}

您可以在数组上循环,并根据您的条件将值推送到正确的新数组。例如:

<?php

$fixed_array = array();

foreach ($data_array as $data) {
    if (strpos($data, '099') === 0) {
        $fixed_array[] = $data;
    }

    if ....
}

是的,我实际上用preg_match编写了完整的代码,但在阅读了一些评论后,我接受了这样的观点:最好是指明方向

您将创建三个不同的阵列,分别名为arrayTelephone、arrayMobile和arraySite

然后使用foreach或for循环搜索第一个数组。将当前循环值与条件进行比较,并在按下“继续”语句后将该值推送到一个方便的新阵列(arrayTelephone、arrayMobile、arraySite)中


您可以通过查看add the

找到解决方案是的,我实际上用preg_match编写了完整的代码,但是在阅读了一些注释后,我接受最好是显示方式

您将创建三个不同的阵列,分别名为arrayTelephone、arrayMobile和arraySite

然后使用foreach或for循环搜索第一个数组。将当前循环值与条件进行比较,并在按下“继续”语句后将该值推送到一个方便的新阵列(arrayTelephone、arrayMobile、arraySite)中


您可以通过查看add the

@MattiVirkkunen找到解决方案:带有描述的代码示例实际上非常适合学习。不过,我想你有权选择你想要的任何东西。@MattiVirkkunen:带有描述的代码示例实际上非常适合学习。不过,我想你有权投票。请不要为此推荐正则表达式,给他一个学习的机会。请不要为此推荐正则表达式,给他一个学习的机会。