実現したいこと
下記の配列に対して「true」というものだけを抽出し処理を行い、「希望する結果」にしたいと考えております。
$table = [ [10, 'Alpha', true], [13, 'Beta', false], [15, 'Gamma', true], [21, 'Delta', true], ];
希望する結果
$result = [ [10, 15, 21], ['Alpha', 'Gamma', 'Delta'], ];
その際に、各配列の値が増えた場合でも取得ができるように処理をしたいです。(=数が動的に変動する)
例 [10, 'Alpha', true, 'pen'],
発生している問題・分からないこと
◾️試した内容
in_arrayでtrueがある配列を抽出した後に、各値を格納する変数名を「動的に対応できそうな名前」で作成しました。
そして、3つの変数のボックスに各値が入ってくれることを希望していたのですが、配列が9こ作成されてしまいました。
◾️教えてほしいこと
1、動的に作られる変数名が3つだけになり各値を入れるにはどのように変更をすればいいでしょうか(おそらくループの記載位置などが間違っていると思いますが、どこに置いたら良いかまだわかりません、)
2、上記1の問題が解決された後に、trueが入る配列は除外して出力をさせるにはどうしたらいいでしょいか。
3、そもそも他のやり方でスムーズに実現ができる方法はありますでしょうか。
該当のソースコード
php
1◾️実際のコード 2```ここに言語を入力 3<?php 4 5$table = [ 6 [10, 'Alpha', true], 7 [13, 'Beta', false], 8 [15, 'Gamma', true], 9 [21, 'Delta', true], 10]; 11$count = 0; 12 13foreach ($table as $row) { 14 15 if(in_array(true,$row, true)) { 16 17 for ($i = 0 ; $i < count($row) ; $i++){ 18 $count = $count + $i; 19 ${"box_".$i}[] = $row[$i]; 20 // $val2 = ${"box_".$i}; 21 var_dump(${"box_".$i}); 22 } 23 } 24}
### 試したこと・調べたこと - [x] teratailやGoogle等で検索した - [x] ソースコードを自分なりに変更した - [ ] 知人に聞いた - [ ] その他 ##### 上記の詳細・結果 ◾️出力結果 ```ここに言語を入力 array ( 0 => 10, )array ( 0 => 'Alpha', )array ( 0 => true, )array ( 0 => 10, 1 => 15, )array ( 0 => 'Alpha', 1 => 'Gamma', )array ( 0 => true, 1 => true, )array ( 0 => 10, 1 => 15, 2 => 21, )array ( 0 => 'Alpha', 1 => 'Gamma', 2 => 'Delta', )array ( 0 => true, 1 => true, 2 => true,
補足
特になし

回答2件
あなたの回答
tips
プレビュー