2

これはばかげた質問のように聞こえるかもしれませんが、私は十分に考えていません。

それとも思ったより難しい...

次のような数値の配列があるとします。

$table = array(
'5','2','1','4','4','4',
'1','2','4','2','1','1',
'3','4','3','1','4','4',
'1','4','2','S','4','4',
'1','2','4','2','1','1',
'5','2','6','4','8','1'
);

S =「S」の場所に基づいて行または列を取得したい場所。

私はSがどこにいるかを知ることができます。

することによって:

$start = array_search('S', $table);

この配列の基になる ''グリッド'' です。S はどこでもかまいません。

また、グリッド自体は、長さと幅が異なるサイズにすることができます。

行全体または列全体を取得するにはどうすればよいですか?

(IE:S は列 3 にあります: 4,2,1,S,2,4)

(IE:S は行 3 にあります: 1,4,2,S,4,4)

正しい方向へのヒントだけでも役に立ちます、私のために全力を尽くす必要はありません。

または、これにアプローチする方法についてのアイデア。

4

3 に答える 3

2

さて、使用したい幅がどこかに保存されていると思います!(そして、2次元配列を使用したくない場合は、他の回答を確認してください。この場合、2次元配列の方がはるかに理にかなっています)。

線を取得したい場合$startは、配列内の S の位置である which を使用して、それを幅で割ります。次に、切り捨てまたは切り上げを行う必要があります (カウントを 0 から開始するか 1 から開始するかによって異なります)。

列については、同様のことを行う必要があり$start % $widthます。ここで使用してください。(1 から数え始める場合は 1 を足してください)。

于 2012-05-25T18:22:03.643 に答える
0

ヒントは次のとおりです。

$table[] = array();
$table[][0] = array(5,2,1,4,5);
$table[][1] = array(1,5,2,3,3);
$table[][2] = array(1,2,'s',4,5);

x/y 検索を行うには、配列の配列が必要です。

あなたの x は、外側の配列の n 番目の要素です。

あなたの y は、内側の配列の n 番目の要素です。

于 2012-05-25T18:17:15.027 に答える
0

配列内の「s」のような文字列を検索し、その列と行を見つけることができます:

$cols=5;     // your columns count
$row=1;
$i=1;

$array = array('1','2','3','4','5','6','7','s','9');  
foreach($array as $value)  
{  

  if($value=='s')
   {
     echo 'Column : '.$i .' || Row : ' .$row ;
   }
  if($i==$cols)  
   {  
      $i=0;
      $row++;
   }  
   $i++;
}
于 2012-05-25T18:32:47.220 に答える