57153

[code]

    $dataAry
    (
        [a] => 
        [b] => 
        [d_1] => 
        [hoge_1] => 
        [c_1] =>
        [d_2] => 
        [hoge_2] => https://xxxx
        [c_2] =>
        [d_3] => 
        [hoge_3] => 
        [c_3] => 
    )
    
[/code]

**上記配列に対して実行したい処理**  
・hoge_xに値がある時、hoge_xの値を$hogeAryへ格納  
・hoge_xに値がある時、d_xの値を$dAryへ格納  
→ hoge_2に値があるので、hoge_2の値を$hogeAryへ格納  
→ hoge_2に値があるので、d_2の値を$dAryへ格納  
※hoge_xの値が複数ある場合は、サフィックス昇順で格納  
※上記以外のキーは関係ありません

欲しい結果

[code]

    $hogeAry
    (
        [0] => https://xxxx
    )
    $dAry
    (
        [0] => 
    )
    
[/code]

* * *

作成したいコードのイメージ

[code]

    $dAry=array();
    $hogeAry=array();
    foreach ($dataAry as $key=>$val){
      if(hoge_xに値がある時){
        $hogeAry[]=$val;
      }
      if(hoge_xに値がある時){
        x(であるサフィックス数値)を取得;
      }
    }
    foreach ($dataAry as $key=>$val){
      if($key==data_x){ //上記のようにhoge_xに値があるケースが1件だけならこれで良いと思うが、複数あった場合の書き方は？
        $dataAry[]=$val;
      }
    }
    
[/code]


CC BY-SA 4.0
2019-08-02T12:24:22.657
57132
2019-08-04T05:24:47.727
7886
question
php
配列内に存在する同じプレフィックスのキーで値がある場合のみ、別途格納したい

[code]

    $dAry=array();
    $hogeAry=array();
    foreach ($dataAry as $key=>$val){
      if(strpos($key,'hoge_') !== false){
        $dAry[]=str_replace('hoge_', '', $key);
        $hogeAry[]=$val;
      }
    }
    array_multisort($dAry, SORT_ASC, $hogeAry);
    
[/code]

こんな感じですかね。デバッグしてないですが。


CC BY-SA 4.0
2019-08-04T05:24:47.727
57153
2019-08-04T05:24:47.727
35356
57132
answer