将数据放入数组变量时发出问题

时间:2016-09-30 06:58:29

标签: php arrays

我将数据从后端放到数组变量中。但它在检查函数in_array()中的条件时跳过一些值。

$check_empp=mysqli_query($conn,"select * from customer");
while($check_emp_fetchh=mysqli_fetch_array($check_empp,MYSQLI_BOTH)) {
    $ecustomercheck[]=$check_emp_fetchh['customer_id'];
}

if (in_array($value[0], $ecustomercheck)) {        
    $unique_array[] = array('cid'=>$value[0], 'rep_name'=>$value[2], 'date'=>$value[1]);
}
print_r($unique_array);

$value[0]包含客户ID的值('SLR-84936878','SLR-84963110')。 “$ unique_array”数组变量跳过一些比较现有值。如果我正在使用自定义数组变量并将值初始化,它工作正常。像:

$check_empp=mysqli_query($conn,"select * from customer");
while($check_emp_fetchh=mysqli_fetch_array($check_empp,MYSQLI_BOTH)) {
    $ecustomercheck[]=$check_emp_fetchh['customer_id'];
}

$ac=array('SLR-84936878','SLR-84963110','SLR-76472164','SLR-76472174','SLR-14936878','SLR-25936878');

if (in_array($value[0], $ac)) {    
    $unique_array[] = array('cid'=>$value[0], 'rep_name'=>$value[2], 'date'=>$value[1]);
}

print_r($unique_array);

如上所述正常工作。但是我想用数据库中的fetch数据来处理它。任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:0)

而不是$ac您应该使用$ecustomercheck

$check_empp=mysqli_query($conn,"select * from customer");
while($check_emp_fetchh=mysqli_fetch_array($check_empp,MYSQLI_BOTH)) {
    $ecustomercheck[]=$check_emp_fetchh['customer_id'];
}

if (in_array($value[0], $ecustomercheck)) {
    $unique_array[] = array('cid'=>$value[0], 'rep_name'=>$value[2], 'date'=>$value[1]);
}
print_r($unique_array);

修改

如果我的理解是正确的,我就会制作自己的数组:

$check_empp=mysqli_query($conn,"select * from customer");
while($check_emp_fetchh=mysqli_fetch_array($check_empp,MYSQLI_BOTH)) {
    $ecustomercheck[]=$check_emp_fetchh['customer_id'];
}

$a = array(array("SLR-84936878","05/25/2016", "SAMSUNG"),array("SLR-84963110","05/27/2016", "APPLE")) ;

foreach($a as $value) {
    if (in_array($value[0], $ecustomercheck)) {
        $unique_array[] = array('cid'=>$value[0], 'rep_name'=>$value[2], 'date'=>$value[1]);
    }   
}

print_r($unique_array);

答案 1 :(得分:0)

而不是将数组存储在$unique_array中:

$unique_array[] = array('cid'=>$value[0], 'rep_name'=>$value[2], 'date'=>$value[1]);

您只需将数据存储在$unqiue_array中:

<?php

$unique_array = array();
$i = 1;
foreach ($a as $value)
{
  if (in_array(trim($value[0]), $ecustomercheck))
  {
    $unique_array[$i]['cid'] = $value[0];
    $unique_array[$i]['rep_name'] = $value[1];
    $unique_array[$i]['date'] = $value[2];    
  }  
  $i++;
}
print_r($unique_array);
?>