亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

PHP 需要幫助按方向查找某個索引,

PHP 需要幫助按方向查找某個索引,

PHP
蠱毒傳說 2023-08-26 10:20:05
所以,我有一個索引。0-等。我想通過一個方向獲得某個索引號。我在前端顯示的內容是這樣的:0123456789如果我在0,我想下降。我怎么知道它是什么索引?我不知道該怎么做。編輯:我有一個包含 4 個索引(0-3)的索引列表。我有無限數量的列(意味著列數會改變。)
查看完整描述

1 回答

?
慕的地8271018

TA貢獻1796條經驗 獲得超4個贊

將索引加載到二維數組中,以便可以通過提供 y(上/下)和 x(左/右)來訪問每個元素


這就是我們的矩陣:


array(3) {

  [0]=>

  array(4) {

    [0]=>

    string(1) "0"

    [1]=>

    string(1) "1"

    [2]=>

    string(1) "2"

    [3]=>

    string(1) "3"

  }

  [1]=>

  array(4) {

    [0]=>

    string(1) "4"

    [1]=>

    string(1) "5"

    [2]=>

    string(1) "6"

    [3]=>

    string(1) "7"

  }

  [2]=>

  array(2) {

    [0]=>

    string(1) "8"

    [1]=>

    string(1) "9"

  }

}

所以我們的'0'是$matrix[0][0],1是$matrix[0,1],4是$matrix[1, 0]等等?,F在我們可以通過$y和$x訪問每個元素并得到通過添加 $y(向下加 1,向上加 -1)或 $x(向右加 1,向左加 -1)來將元素按所需方向移動。如果超出索引范圍,則意味著索引不存在(例如從 0 向左)。


<?php


$index = '0123456789';

$indexArray = str_split($index);

$matrix = array_chunk($indexArray, 4);


function move(array $matrix, string $current, string $direction) {

  foreach ($matrix as $y => $row) {

    foreach ($row as $x =>  $column) {

      if ($column === $current) {

        $position = [$y, $x];

      }

    }

  }


  if ($direction === 'up') {

    $vector = [-1,0];

  } elseif ($direction === 'down') {

    $vector = [1,0];

  } elseif ($direction === 'right') {

    $vector = [0,1];

  } elseif ($direction === 'left') {

    $vector = [0,-1];

  }


  return $matrix[$position[0] + $vector[0]][$position[1] + $vector[1]] ?? null;

}


var_dump(move($matrix, '0', 'down')); // 4

var_dump(move($matrix, '0', 'up')); // null

var_dump(move($matrix, '0', 'left')); // null

var_dump(move($matrix, '0', 'right')); // 1


var_dump(move($matrix, '6', 'down')); // null

var_dump(move($matrix, '6', 'up')); // 2

var_dump(move($matrix, '6', 'left')); // 5

var_dump(move($matrix, '6', 'right')); // 7


查看完整回答
反對 回復 2023-08-26
  • 1 回答
  • 0 關注
  • 115 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號