x/y 좌표 및 방향 정보 (가로 또는 세로)가 포함 된 데이터 배열을 가져오고 공유 셀을 증가 숫자로 연결하려고합니다. 이것은 크로스 워드 퍼즐을위한 것입니다. 여기에 원래의 배열입니다 :php 마킹 그리드 교차점 x/y 코드
Array
(
[0] => Array
(
[id] => 1
[puzzle_id] => 1
[word] => hello
[hint] =>
[direction] => across
[grid_x] => 3
[grid_y] => 1
)
[1] => Array
(
[id] => 2
[puzzle_id] => 1
[word] => loot
[hint] =>
[direction] => down
[grid_x] => 5
[grid_y] => 1
)
[2] => Array
(
[id] => 3
[puzzle_id] => 1
[word] => hellotest
[hint] =>
[direction] => down
[grid_x] => 3
[grid_y] => 1
)
[3] => Array
(
[id] => 4
[puzzle_id] => 1
[word] => looking
[hint] =>
[direction] => across
[grid_x] => 3
[grid_y] => 3
)
)
내가 1 새로운 일에 시작됩니다 "NUM"라고 각 항목에 키와 증분을 추가 할 수는 있지만, 까다로운 부분은 I가 건너와이 필요하다 (grid_x와 grid_y를 공유하는) 시작 셀을 공유하는 경우 동일한 번호를 공유 할 수 있습니다. 이것은 내가 지금 가지고있는 코드이지만, 내가 찾고있는 정확한 숫자를 만들어 내지 못한다.
$puzzle_data2 = $puzzle_data;
$across_counter = 1;
foreach($puzzle_data as $rkey=>$row)
{
if($row['direction'] == 'across')
{
$puzzle_data[$rkey]['num'] = $across_counter++;
foreach($puzzle_data2 as $rkey2=>$row2)
{
if($row['direction'] == 'down')
{
if($row['grid_x'] == $row2['grid_x'] && $row['grid_y'] == $row2['grid_y'])
{
$puzzle_data[$rkey2]['num'] = $across_counter;
break;
}
}
}
}
}
foreach($puzzle_data as $rkey=>$row)
{
if(!isset($row['num']))
{
$puzzle_data[$rkey]['num'] = $across_counter++;
}
}
나는이 결과를 그만 둘 : 나는 둘 수 "1"로 ID 1과 3을 찾고
Array
(
[0] => Array
(
[id] => 1
[puzzle_id] => 1
[word] => hello
[hint] =>
[direction] => across
[grid_x] => 3
[grid_y] => 1
[num] => 1
)
[1] => Array
(
[id] => 2
[puzzle_id] => 1
[word] => loot
[hint] =>
[direction] => down
[grid_x] => 5
[grid_y] => 1
[num] => 3
)
[2] => Array
(
[id] => 3
[puzzle_id] => 1
[word] => hellotest
[hint] =>
[direction] => down
[grid_x] => 3
[grid_y] => 1
[num] => 4
)
[3] => Array
(
[id] => 4
[puzzle_id] => 1
[word] => looking
[hint] =>
[direction] => across
[grid_x] => 3
[grid_y] => 3
[num] => 2
)
)
. 십자형 퍼즐에 대해 생각해 보면 십자형 퍼즐을 생각할 때 가로 건너 뛰기에서 동일한 번호의 동일한 시작 셀을 공유하는 것은 내 데이터 세트로 수행하려고하는 것입니다.
감사합니다. 왼쪽 상단에있는 항목이 다음 행으로 아래로 이동하기 전에 라인을 가로 질러가는 첫되도록
종류의 데이터 첫번째 모든 행 번호와 안부 #을 사용해야
, 다음 스크립트가 작동 – Waygood