如何从不同的数组中分离值?

时间:2016-02-15 06:44:14

标签: php

我有第一个信息表:

first

和第二:

second

如第1表所示,#005有TC20151200730; #008,#009有TC20151200738。
我需要在第二个表中显示id(#005,#008,#009),但是如果有多个记录,则id将粘在一起(第二张图片左侧)。

如何显示为第2张图的右侧?

 foreach($jobSumID as $job)
        {
            $jobList=explode(";",$job);

            if(in_array($row["ets_tcase_code"], $jobList))
            {
                if(base_num_rows($getActionSQL)>1)
                    $date .="#".$jobList[0]."<br/>";  //show id 008,009             

                else
                    $date .="#".$jobList[0]."<br/>";  //show id 005
            }
        }                     

我将第1个pic数据存储到数组中,因为id是通过循环生成的:

 Array( [0] => 001;TC20151200694 
        [1] => 002;TC20151200723 
        [2] => 003;TC20151200723 
        [3] => 004;TC20151200723 
        [4] => 005;TC20151200730 
        [5] => 006;TC20151200723 
        [6] => 007;TC20151200716 
        [7] => 008;TC20151200738 
        [8] => 009;TC20151200738 
     )

由于

2 个答案:

答案 0 :(得分:1)

感谢大家的帮助! 我将数据制作成多维数组:

Array ( [TC20151200694] => 001 
        [TC20151200723] => Array ( [0] => 002 [1] => 003 [2] => 004 [3] => 006 ) 
        [TC20151200730] => 005 
        [TC20151200716] => 007 
        [TC20151200738] => Array ( [0] => 008 [1] => 009 )
      )

以下是我的代码显示为第2张图片的右侧:

if(array_key_exists($row["ets_tcase_code"],$jobSumID))
{   
    $test="";
    $j=0;
    for($i=0;$i<sizeof($jobSumID);$i++)
    {
        if(is_array($jobSumID[$row["ets_tcase_code"]]))
        {
            if($j<sizeof($jobSumID[$row["ets_tcase_code"]]))
                $date.="#".$jobSumID[$row["ets_tcase_code"]][0]."<br>";

            array_shift($jobSumID[$row["ets_tcase_code"]]);
            break;
        }
        else
        {
            $date.="#".$jobSumID[$row["ets_tcase_code"]]."<br>";
            break;
        }   
    }
}

答案 1 :(得分:0)

您的代码示例不是很清楚。您也没有向我们提供正确的数据。话虽这么说,你正在寻找的东西是使用explode以分号分隔数组中的每个条目,并将这些数据存储在另一个数组中,如下所示:

<?php

// Example data to work with
$array = array(
    '001;1',
    '002;1',
    '003;1',
    '004;2',
    '005;2',
    '006;2',
    '007;2',
);

$jobs = array();
foreach( $array as $job )
{
    $joblist = explode(';',$job);
    $number = $joblist[0];
    $id = $joblist[1];

    // Let's store the gathered data in the $jobs array
    $jobs[] = array(
        'number' => $number,
        'id' => $id,
    );
}

// An example to output the data
foreach( $jobs as $v )
{
    echo 'Job with number ' . $v['number'] . ' has id: ' . $v['id'] . "\n";
}