2016-03-24 12 views
2

2つの配列があります。2つの配列を比較して列に一致を表示する方法

アレイ1 - すべての日付の一覧は
アレイ2 - すべての日付のリストは、人が人その最初の行のと、毎日のすべての日付を持つテーブルを表示したい

存在し、 2列目に存在する場合は、それぞれの列が存在すると言います。

ネストされたループを試しましたが、さまざまな行と1行につき1つの結果、つまり1行に1つの一致が表示されます。

私はこの

<table width="100%" border="1" cellspacing="1" cellpadding="1"> 
 
    <tr> 
 
    <td width="6%">160111</td> 
 
    <td width="6%">160113</td> 
 
    <td width="6%">160120</td> 
 
    <td width="6%">160127</td> 
 
    <td width="6%">160201</td> 
 
    <td width="6%">160203</td> 
 
    <td width="6%">160208</td> 
 
    <td width="6%">160210</td> 
 
    <td width="6%">160217</td> 
 
    <td width="6%">160224</td> 
 
    <td width="6%">160229</td> 
 
    <td width="6%">160302</td> 
 
    <td width="6%">160307</td> 
 
    <td width="6%">160309</td> 
 
    <td width="6%">160321</td> 
 
    <td width="5%">160323</td> 
 
    </tr> 
 
    <tr> 
 
    <td>&nbsp;</td> 
 
    <td>&nbsp;</td> 
 
    <td>&nbsp;</td> 
 
    <td>Present</td> 
 
    <td>&nbsp;</td> 
 
    <td>&nbsp;</td> 
 
    <td>&nbsp;</td> 
 
    <td>Present</td> 
 
    <td>&nbsp;</td> 
 
    <td>&nbsp;</td> 
 
    <td>&nbsp;</td> 
 
    <td>Present</td> 
 
    <td>&nbsp;</td> 
 
    <td>&nbsp;</td> 
 
    <td>&nbsp;</td> 
 
    <td>&nbsp;</td> 
 
    </tr> 
 
</table>

提案のような何かを達成したいですか?どのようにループを実行するか、これはどのように達成できますか?

+0

あなたはサンプルを投稿することができますあなたの2つの配列の?配列の構造は何ですか? – Sean

+0

@Sean Array 1 - 160129,160130;配列2- 160129; – Arihant

+0

配列1をループし、 'in_array()'を使用して値が配列2にあるかどうかをテストします。存在する場合は 'present'を表示します。 – Barmar

答えて

2

使用in_array()テストします項目が配列2にあるかどうか。

foreach ($array1 as $day) { 
    echo "<td>"; 
    echo in_array($day, $array2) ? "Present" : "&nbsp;"; 
    echo "</td>"; 
} 
0

あなたは私が私の答えで与えられたような配列が同じである場合は、これを試すことができ

PHPコード:

<?php 
    $dates =array(
     '160111','160113','160120','160127','160201','160203', 
     '160208','160210','160217','160224','160229','160302', 
     '160307','160309','160321','160323' 
    ); 
    $person_present =array(
     '','','','160127','','', 
     '','160210','','','','160302', 
     '','','','' 
    ); 

    foreach ($dates as $pkey => $day) 
    { 
     if (in_array($day, $person_present)) { 
      ?> 
      <td>Present</td> 
      <?php 
     } else { 
      ?> 
      <td>&nbsp;</td> 
      <?php 
     }   
    } 
?> 

全コード:

<table width="100%" border="1" cellspacing="1" cellpadding="1"> 
     <tr> 
     <td width="6%">160111</td> 
     <td width="6%">160113</td> 
     <td width="6%">160120</td> 
     <td width="6%">160127</td> 
     <td width="6%">160201</td> 
     <td width="6%">160203</td> 
     <td width="6%">160208</td> 
     <td width="6%">160210</td> 
     <td width="6%">160217</td> 
     <td width="6%">160224</td> 
     <td width="6%">160229</td> 
     <td width="6%">160302</td> 
     <td width="6%">160307</td> 
     <td width="6%">160309</td> 
     <td width="6%">160321</td> 
     <td width="5%">160323</td> 
     </tr> 
     <tr> 
<?php 
    $dates =array(
     '160111','160113','160120','160127','160201','160203', 
     '160208','160210','160217','160224','160229','160302', 
     '160307','160309','160321','160323' 
    ); 
    $person_present =array(
     '','','','160127','','', 
     '','160210','','','','160302', 
     '','','','' 
    ); 

    foreach ($dates as $pkey => $day) 
    { 
     if (in_array($day, $person_present)) { 
      ?> 
      <td>Present</td> 
      <?php 
     } else { 
      ?> 
      <td>&nbsp;</td> 
      <?php 
     }   
    } 
?> 
     </tr> 
    </table> 
0
  1. 配列1を繰り返し処理(foreachループ)
  2. チェックARRAY2に対する各値(in_array()

例: -

echo "<br/><table border='1' style='width:100%'><tr><td>"; 
foreach($arr1 as $a1) { 
echo "<table border='1' style='display:inline;border:0px solid'>"; 
echo "<tr><td>$a1</td></tr>"; 
    if(in_array($a1,$arr2)) { 
     echo "<tr><td>Present</td></tr>"; 
    } else { 
     echo "<tr><td> </td></tr>"; 
    } 
    echo "</table>"; 
} 
echo "</td></tr></table>"; 
関連する問題