現在の言語: 日本語 |
多次元配列の作成 |
配列関連 |
class test1
{
//行データを追加
function test1():void
{
$ary =[
[1,2,3],
[4,5,6],
];
$this->echoArray($ary, 2, 2);
/*
index:0 i:0 j:0 ary:1
index:1 i:0 j:1 ary:2
index:2 i:0 j:2 ary:3
index:3 i:1 j:0 ary:4
index:4 i:1 j:1 ary:5
index:5 i:1 j:2 ary:6
*/
//要素(行)を追加
$ary[] = [
7,8,9
];
$this->echoArray($ary, 3, 3);
/*
index:0 i:0 j:0 ary:1
index:1 i:0 j:1 ary:2
index:2 i:0 j:2 ary:3
index:3 i:1 j:0 ary:4
index:4 i:1 j:1 ary:5
index:5 i:1 j:2 ary:6
index:6 i:2 j:0 ary:7
index:7 i:2 j:1 ary:8
index:8 i:2 j:2 ary:9
*/
$ary2 =[
[
"person" => "tanaka",
"age" =>20,
],
[
"person" => "sato",
"age" =>21,
],
];
$this->echoPersonAge($ary2);
/*
person:tanaka age:20
person:sato age:21
*/
//要素(行)を追加
$ary2[] = [
"person" => "suzuki",
"age" =>22,
];
$this->echoPersonAge($ary2);
/*
person:tanaka age:20
person:sato age:21
person:suzuki age:22
*/
}
private function echoArray(array $ary, int $row, int $col)
{
$index = 0;
for($i=0; $i < $row; $i++)
{
for($j=0; $j < $col; $j++)
{
echo "index:$index i:$i j:$j ary:".(string)($ary[$i][$j]).PHP_EOL;
$index++;
}
}
}
private function echoPersonAge(array $ary)
{
foreach($ary as $tmp)
{
echo "person:".$tmp["person"]." age:".$tmp["age"].PHP_EOL;
}
}
//列に追加
function test2():void
{
$ary =[
[1,2],
[4,5],
];
$this->echoArray($ary, 2, 2);
/*
index:0 i:0 j:0 ary:1
index:1 i:0 j:1 ary:2
index:2 i:1 j:0 ary:4
index:3 i:1 j:1 ary:5
*/
$ary[0][] = 3;
$ary[1][] = 6;
$this->echoArray($ary, 2, 3);
/*
index:0 i:0 j:0 ary:1
index:1 i:0 j:1 ary:2
index:2 i:0 j:2 ary:3
index:3 i:1 j:0 ary:4
index:4 i:1 j:1 ary:5
index:5 i:1 j:2 ary:6
*/
}
//3次元配列データの作成
function test3():void
{
$ary = []; // 空の配列を用意
for ($i = 1; $i <= 3; $i++)
{
$row = []; // 各行の配列を初期化
for ($j = 1; $j <= 3; $j++)
{
$row[] = $i * $j; // 列を追加
}
$ary[] = $row; // 作成した行を本体に追加
}
$this->echoArray($ary, 3, 3);
/*
index:0 i:0 j:0 ary:1
index:1 i:0 j:1 ary:2
index:2 i:0 j:2 ary:3
index:3 i:1 j:0 ary:2
index:4 i:1 j:1 ary:4
index:5 i:1 j:2 ary:6
index:6 i:2 j:0 ary:3
index:7 i:2 j:1 ary:6
index:8 i:2 j:2 ary:9
*/
$ary2 = [];
for ($i = 0; $i < 3; $i++) { // 1 <= 3 ではなく 0 < 3
for ($j = 0; $j < 3; $j++) {
for ($k = 0; $k < 3; $k++) {
// 計算式を調整(元の計算を維持するなら ($i+1)*($j+1)*($k+1))
$ary2[$i][$j][$k] = ($i + 1) * ($j + 1) * ($k + 1);
}
}
}
$this->echoArray($ary, 3, 3);
/*
index:0 i:0 j:0 ary:1
index:1 i:0 j:1 ary:2
index:2 i:0 j:2 ary:3
index:3 i:1 j:0 ary:2
index:4 i:1 j:1 ary:4
index:5 i:1 j:2 ary:6
index:6 i:2 j:0 ary:3
index:7 i:2 j:1 ary:6
index:8 i:2 j:2 ary:9
*/
}
private function echoArray3(array $ary, int $count1, int $count2, int $count3)
{
$index = 0;
for($i=0; $i < $count1; $i++)
{
for($j=0; $j < $count2; $j++)
{
for($k=0; $k < $count3; $k++)
{
echo "index:$index i:$i j:$j k:$k ary:".(string)($ary[$i][$j][$k]).PHP_EOL;
$index++;
}
}
}
}
}
echo "<pre>";
$cls1= new test1();
$cls1->test1();
$cls1->test2();
echo "<hr>";
$cls1->test3();
echo "</pre>";
class test1
{
//Add row data
function test1():void
{
$ary =[
[1,2,3],
[4,5,6],
];
$this->echoArray($ary, 2, 2);
/*
index:0 i:0 j:0 ary:1
index:1 i:0 j:1 ary:2
index:2 i:0 j:2 ary:3
index:3 i:1 j:0 ary:4
index:4 i:1 j:1 ary:5
index:5 i:1 j:2 ary:6
*/
//Add element (row)
$ary[] = [
7,8,9
];
$this->echoArray($ary, 3, 3);
/*
index:0 i:0 j:0 ary:1
index:1 i:0 j:1 ary:2
index:2 i:0 j:2 ary:3
index:3 i:1 j:0 ary:4
index:4 i:1 j:1 ary:5
index:5 i:1 j:2 ary:6
index:6 i:2 j:0 ary:7
index:7 i:2 j:1 ary:8
index:8 i:2 j:2 ary:9
*/
$ary2 =[
[
"person" => "tanaka",
"age" =>20,
],
[
"person" => "sato",
"age" =>21,
],
];
$this->echoPersonAge($ary2);
/*
person:tanaka age:20
person:sato age:21
*/
//Add element (row)
$ary2[] = [
"person" => "suzuki",
"age" =>22,
];
$this->echoPersonAge($ary2);
/*
person:tanaka age:20
person:sato age:21
person:suzuki age:22
*/
}
private function echoArray(array $ary, int $row, int $col)
{
$index = 0;
for($i=0; $i < $row; $i++)
{
for($j=0; $j < $col; $j++)
{
echo "index:$index i:$i j:$j ary:".(string)($ary[$i][$j]).PHP_EOL;
$index++;
}
}
}
private function echoPersonAge(array $ary)
{
foreach($ary as $tmp)
{
echo "person:".$tmp["person"]." age:".$tmp["age"].PHP_EOL;
}
}
//add to column
function test2():void
{
$ary =[
[1,2], [4,5],
];
$this->echoArray($ary, 2, 2);
/*
index:0 i:0 j:0 ary:1
index:1 i:0 j:1 ary:2
index:2 i:1 j:0 ary:4
index:3 i:1 j:1 ary:5
*/
$ary[0][] = 3;
$ary[1][] = 6;
$this->echoArray($ary, 2, 3);
/*
index:0 i:0 j:0 ary:1
index:1 i:0 j:1 ary:2
index:2 i:0 j:2 ary:3
index:3 i:1 j:0 ary:4
index:4 i:1 j:1 ary:5
index:5 i:1 j:2 ary:6
*/
}
//Create 3D array data
function test3():void
{
$ary = []; // Prepare an empty array
for ($i = 1; $i <= 3; $i++)
{
$row = []; // Initialize the array for each row
for ($j = 1; $j <= 3; $j++)
{
$row[] = $i * $j; // Add a column
}
$ary[] = $row; // Add the created row to the body
}
$this->echoArray($ary, 3, 3);
/*
index:0 i:0 j:0 ary:1
index:1 i:0 j:1 ary:2
index:2 i:0 j:2 ary:3
index:3 i:1 j:0 ary:2
index:4 i:1 j:1 ary:4
index:5 i:1 j:2 ary:6
index:6 i:2 j:0 ary:3
index:7 i:2 j:1 ary:6
index:8 i:2 j:2 ary:9
*/
$ary2 = [];
for ($i = 0; $i < 3; $i++) { // 0 < 3, not 1 <= 3
for ($j = 0; $j < 3; $j++) {
for ($k = 0; $k < 3; $k++) {
// Adjust the formula (to keep the original calculation, use ($i+1)*($j+1)*($k+1)))
$ary2[$i][$j][$k] = ($i + 1) * ($j + 1) * ($k + 1);
}
}
}
$this->echoArray($ary, 3, 3);
/*
index:0 i:0 j:0 ary:1
index:1 i:0 j:1 ary:2
index:2 i:0 j:2 ary:3
index:3 i:1 j:0 ary:2
index:4 i:1 j:1 ary:4
index:5 i:1 j:2 ary:6
index:6 i:2 j:0 ary:3
index:7 i:2 j:1 ary:6
index:8 i:2 j:2 ary:9
*/
}
private function echoArray3(array $ary, int $count1, int $count2, int $count3)
{
$index = 0;
for($i=0; $i < $count1; $i++)
{
for($j=0; $j < $count2; $j++)
{
for($k=0; $k < $count3; $k++)
{
echo "index:$index i:$i j:$j k:$k ary:".(string)($ary[$i][$j][$k]).PHP_EOL;
$index++;
}
}
}
}
}
echo "<pre>";
$cls1= new test1();
$cls1->test1();
$cls1->test2();
echo "<hr>";
$cls1->test3();
echo "</pre>";
| 著作権情報 |
| ホームページおよびアプリ等に掲載されている情報等については、いかなる保障もいたしません。 ホームページおよびアプリ等を通じて入手したいかなる情報も複製、販売、出版または使用させたり、 または公開したりすることはできません。 当方は、ホームページおよびアプリ等を利用したいかなる理由によっての障害等が発生しても、 その結果ホームページおよびアプリ等を利用された本人または他の第三者が被った損害について 一切の責任を負わないものとします。 |