我有第一个信息表:
和第二:
如第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
)
由于
答案 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";
}