3v4l.org

run code in 200+ php & hhvm versions
Bugs & Features
<?php $MaintenanceCycleItemList_arr = array('キッチン', 'トイレ', '浴室', '洗面台', '水洗'); // 部屋番要一覧のSQLで作る $array['部屋番号'][] = '0101'; $array['部屋番号'][] = '0102'; $array['部屋番号'][] = '0103'; $array['部屋番号'][] = '0104'; $array['部屋番号'][] = '0105'; $array['部屋番号'][] = '0401'; /* なぜか出来ない if ( array_key_exists('0101', $array) ) { } else { $array['部屋番号'][] = '0101'; } */ // 工事コードと枝番が前のフィールドから変更になったら実行 $array['0101']['工事コード_枝番'][] = '0123456_01'; // 毎回実行 $array['0101']['0123456_01']['明細フィールド'][] = array('1', '1st暮らす キッチン STANDARD', '', 'キッチン', '1st暮らす', 'キッチン', 'キッチン', 'スタンダード', '', '1', '1500000', '1500000'); // キッチン等、該当の項目だった場合に実行 $array['0101']['●']['キッチン'] = '●'; // メインテーブルのフラグ的なやつ $array['0101']['●'][] = 'キッチン'; // サブテーブルの明細表紙に記載する該当した項目名(カンマ区切り) $array['0101']['0123456_01']['項目名'][] = 'キッチン'; $array['0101']['0123456_01']['明細フィールド'][] = array('2', '1st暮らす 浴室', 'ユニバーサル', '浴室', '1st暮らす', '浴室', '浴室', 'ユニバーサル', '', '1', '1480000', '1480000'); //$array['0101']['●']['浴室'] = '●'; $array['0101']['●'][] = '浴室'; $array['0101']['0123456_01']['項目名'][] = '浴室'; $array['0101']['0123456_01']['明細フィールド'][] = array('3', '', '', '', '', '', '', '', '', '', '', ''); $array['0101']['0123456_01']['明細フィールド'][] = array('4', '特別値引き', '端数値引き', '1', '-30000', '-30000'); $array['0101']['工事コード_枝番'][] = '0123456_02'; $array['0101']['0123456_02']['明細フィールド'][] = array('1', '1st暮らす トイレ', 'ベーシック', 'トイレ', '1st暮らす', 'トイレ', 'トイレ', 'ベーシック', '', '1', '300000', '300000'); //$array['0101']['●']['トイレ'] = '●'; $array['0101']['●'][] = 'トイレ'; $array['0101']['0123456_02']['項目名'][] = 'トイレ'; $array['0401']['工事コード_枝番'][]= '9999999_00'; $array['0401']['9999999_00']['明細フィールド'][] = array('1', '畳 表替', '大', '3', '5000', '15000'); //$array['0401']['●']['畳'] = '●'; $array['0401']['●'][] = '畳'; $array['0401']['9999999_00']['項目名'][] = '畳'; foreach ($array['部屋番号'] as $RoomNo) { print '部屋番号: ' . $RoomNo . "\n"; //$RoomNo = '0101'; /* foreach ($array[$RoomNo]['明細フィールド'] as $key) { print '<tr>' . '<td>' . $key[0] . '</td>' . '<td>' . $key[1] . '</td>' . '</tr>' . "\n"; } */ // 部屋番号に該当する明細があれば // 一次に部屋番号($RoomNo)があるか if ( array_key_exists($RoomNo, $array) ) { //$MaintenanceCycleItemList_arr $buyList_arr = array(); //部屋番号($RoomNo)にある●を列挙 foreach ($array[$RoomNo]['●'] as $key1) { $buyList_arr[] = $key1; // ['●']['キッチン']等が存在するか if ( array_key_exists($key1, $array[$RoomNo]['●']['キッチン'] ) ) { print 'キッチンあったー!!!' . "/n"; } } print '--------------------------------------------------' . "\n"; print '該当商品名' . "\n"; print ' ' . implode(",", $buyList_arr) . "\n"; print '--------------------------------------------------' . "\n"; //部屋番号($RoomNo)にある工事コード_枝番を列挙 foreach ($array[$RoomNo]['工事コード_枝番'] as $key1) { print '工事コード_枝番' . "\n"; print ' ' . $key1 . "\n"; // ['工事コード_枝番']が存在するか if ( array_key_exists($key1, $array[$RoomNo] ) ) { // print $key1 . 'には項目があったよ' . "\n"; $HitList_arr = array(); foreach ($array[$RoomNo][$key1]['項目名'] as $key2) { $HitList_arr[] = $key2; } print 'ヒットした項目名' . "\n"; print ' ' . implode(",", $HitList_arr) . "\n"; print '明細' . "\n"; print '┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓' . "\n"; //部屋番号($RoomNo)にある明細フィールドを列挙 foreach ($array[$RoomNo][$key1]['明細フィールド'] as $key2) { print '┃' . $key2[0] . ' | ' . $key2[1] . "\n"; /* // ['明細フィールド']が存在するか if ( array_key_exists($key1[0], $array[$RoomNo] ) ) { print $key1[0] . 'には項目があったよ' . "\n"; foreach ($array[$RoomNo][$key1[0]] as $key2) { print 'ヒットした明細:' . $key2[0] . "\n"; } } else { print $key1 . 'には項目名がないよ' . "\n"; } */ } print '┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛' . "\n"; } else { print $key1 . 'には項目名がないよ' . "\n"; } } /* foreach ($array[$RoomNo]['明細フィールド']['項目名'] as $key) { print '<tr>' . '<td>' . $key[0] . '</td>' . '<td>' . $key[1] . '</td>' . '</tr>' . "\n"; } */ } else { // print_r($array); print '┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓' . "\n"; print '┃       該当明細はありませんでした。       ┃' . "\n"; print '┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛' . "\n"; } } //print_r($array); ?>
based on R6JbI
Output for 5.6.0 - 5.6.30, 7.0.0 - 7.3.0beta1
部屋番号: 0101 Warning: array_key_exists() expects parameter 2 to be array, string given in /in/EJDlv on line 79 Warning: array_key_exists() expects parameter 2 to be array, string given in /in/EJDlv on line 79 Warning: array_key_exists() expects parameter 2 to be array, string given in /in/EJDlv on line 79 Warning: array_key_exists() expects parameter 2 to be array, string given in /in/EJDlv on line 79 -------------------------------------------------- 該当商品名  ●,キッチン,浴室,トイレ -------------------------------------------------- 工事コード_枝番  0123456_01 ヒットした項目名  キッチン,浴室 明細 ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ ┃1 | 1st暮らす キッチン STANDARD ┃2 | 1st暮らす 浴室 ┃3 | ┃4 | 特別値引き ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ 工事コード_枝番  0123456_02 ヒットした項目名  トイレ 明細 ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ ┃1 | 1st暮らす トイレ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ 部屋番号: 0102 ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ ┃       該当明細はありませんでした。       ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ 部屋番号: 0103 ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ ┃       該当明細はありませんでした。       ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ 部屋番号: 0104 ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ ┃       該当明細はありませんでした。       ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ 部屋番号: 0105 ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ ┃       該当明細はありませんでした。       ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ 部屋番号: 0401 Notice: Undefined index: キッチン in /in/EJDlv on line 79 Warning: array_key_exists() expects parameter 2 to be array, null given in /in/EJDlv on line 79 -------------------------------------------------- 該当商品名  畳 -------------------------------------------------- 工事コード_枝番  9999999_00 ヒットした項目名  畳 明細 ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ ┃1 | 畳 表替 ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
Output for hhvm-3.18.4 - 3.21.0
部屋番号: 0101 Warning: Invalid operand type was used: array_key_exists expects an array or an object; false returned. in /in/EJDlv on line 79 Warning: Invalid operand type was used: array_key_exists expects an array or an object; false returned. in /in/EJDlv on line 79 Warning: Invalid operand type was used: array_key_exists expects an array or an object; false returned. in /in/EJDlv on line 79 Warning: Invalid operand type was used: array_key_exists expects an array or an object; false returned. in /in/EJDlv on line 79 -------------------------------------------------- 該当商品名  ●,キッチン,浴室,トイレ -------------------------------------------------- 工事コード_枝番  0123456_01 ヒットした項目名  キッチン,浴室 明細 ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ ┃1 | 1st暮らす キッチン STANDARD ┃2 | 1st暮らす 浴室 ┃3 | ┃4 | 特別値引き ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ 工事コード_枝番  0123456_02 ヒットした項目名  トイレ 明細 ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ ┃1 | 1st暮らす トイレ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ 部屋番号: 0102 ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ ┃       該当明細はありませんでした。       ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ 部屋番号: 0103 ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ ┃       該当明細はありませんでした。       ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ 部屋番号: 0104 ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ ┃       該当明細はありませんでした。       ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ 部屋番号: 0105 ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ ┃       該当明細はありませんでした。       ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ 部屋番号: 0401 Notice: Undefined index: キッチン in /in/EJDlv on line 79 Warning: Invalid operand type was used: array_key_exists expects an array or an object; false returned. in /in/EJDlv on line 79 -------------------------------------------------- 該当商品名  畳 -------------------------------------------------- 工事コード_枝番  9999999_00 ヒットした項目名  畳 明細 ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ ┃1 | 畳 表替 ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛