PHP从数组中提取值并将它们还原到另一个数组中

时间:2013-12-31 18:46:48

标签: php mysql arrays loops

我从表单的mysql表中提取了一个值数组:

$name_ids = EMP-646
            EMP-545
            EMP-12
            CLIENT-36
            CLIENT-43
            CLIENT-5

我想将EMP和CLIENT识别为单独的数据,然后仅提取整数值,然后将它们存储到单独的变量中。例如:

$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时,它返回true值的最后一个int,直到循环结束。任何帮助是极大的赞赏。

1 个答案:

答案 0 :(得分:0)

这里有效:https://eval.in/84445

相关代码:

$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);

我刚刚创建了数组来存储值,然后将它们推入。