PHP从数组中提取值并将其恢复到另一个数组中

PHP从数组中提取值并将其恢复到另一个数组中,php,mysql,arrays,loops,Php,Mysql,Arrays,Loops,我有一个从mysql表中提取的值数组,其形式如下: $name_ids = EMP-646 EMP-545 EMP-12 CLIENT-36 CLIENT-43 CLIENT-5 我想将EMP和客户机标识为单独的数据,然后只提取整数值,然后将它们存储到单独的变量中。例如: $emp_id = 646 545 12 $

我有一个从mysql表中提取的值数组,其形式如下:

$name_ids = EMP-646
            EMP-545
            EMP-12
            CLIENT-36
            CLIENT-43
            CLIENT-5
我想将EMP和客户机标识为单独的数据,然后只提取整数值,然后将它们存储到单独的变量中。例如:

$emp_id =    646
             545
             12

$client_id = 36
             43 
             5
这是我的尝试,但我无法打印所需的结果,不确定我的逻辑是否正确:

$name_ids = array($_SESSION['INVITED_NAMES']);

foreach($name_ids[0] as $name_id){
  if(stripos($name_id, 'EMP') !== false){ 
    $emp_id = preg_replace("/[^0-9]/","",$name_id);
  }
  elseif(stripos($name_id, 'CLIENT') !== false){ 
    $client_id = preg_replace("/[^0-9]/","",$name_id);
  }

  echo $emp_id.' '; //both results need to happen at this stage in the `foreach` loop.
  echo $client_id.' ';              
}
需要注意的一点是,我需要将结果显示在依赖于此位置的其他代码的位置。使用当前代码,我得到的结果如下:

646 545 12 36 12 43 12 5 12
错误出现在第一个if语句$emp_id处,当值为false时,它将返回真值的最后一个int,直到循环结束。非常感谢您的帮助

它正在工作:

相关代码:

$emp_ids = array();
$client_ids = array();

$name_ids = array('EMP-646',
            'EMP-545',
            'EMP-12',
            'CLIENT-36',
            'CLIENT-43',
            'CLIENT-5');

var_dump($name_ids);            

foreach($name_ids as $name_id){
  if(stripos($name_id, 'EMP') !== false){ 
    $emp_id = preg_replace("/[^0-9]/","",$name_id);
    array_push($emp_ids, $emp_id);
  }
  elseif(stripos($name_id, 'CLIENT') !== false){ 
    $client_id = preg_replace("/[^0-9]/","",$name_id);
    array_push($client_ids, $client_id);
  }

}

echo "Emp_ids are: ";
var_dump($emp_ids);

echo "Client_ids are: ";
var_dump($client_ids);

我刚刚创建了数组来存储这些值,并将其推入。

谢谢您的回复。你的解决方案基本上就是我要求的。然而,这不是我想要的结果。没有更具体地解释我需要的结果是我的错。无法将输出数据保存到数组中,因为我正在将数据插入表中,每个值都需要单独插入。这就是为什么我需要在foreach循环中保留这两个变量。也许这是不可能做到我所期待的。一旦你有他们在2月阵列,你可以做几乎任何你想与他们。我在你的帖子中看到了这条评论,你不能得到每个人的2个值。。。想想看。第一次循环时,值是“EMP-646”,那么怎么会有客户机值呢?如果需要这些值配对,只需创建一个新的$i循环并使用$EMP_id[$i],$CLIENT_id[$i]。是的,我理解你的意思。我只需要回到绘图板上看这个。你很接近。。。可能会提交一个与阵列相关的新问题,以及如何插入阵列。