亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在php中按索引而不是按值從多維關聯數組中的特定索引中搜索所有值

在php中按索引而不是按值從多維關聯數組中的特定索引中搜索所有值

PHP
米脂 2022-10-22 15:51:54
在這個論壇的幫助下,我找到了一種方法來獲得一個完全適合我的任務的數組。我遇到了一個后續問題:我得到了以下示例數組Array ( [A] => Array ( [D] => Array (  [A] => Array (   [M] => Array (    [result] => ADAM )   [N] => Array (    [result] => ADAN )      )    )  )    [H] => Array (   [E] => Array (    [N] => Array (     [R] => Array (      [Y] => Array (       [result] => HENRY )       )    [N] => Array (     [E] => Array (      [S] => Array (       [result] => HENNES )           )         )       )     )   ) )字母是索引,我最終得到每個名稱的結果數組?,F在我正在尋找一種使用特定搜索字符串搜索此數組的方法,并且應該可以從第 3 個字符開始。因此,如果我搜索“ADA”,我想從所有以下結果數組中獲取值,這些結果數組將是“ADAM”和“ADAN”,因為它們都遵循 Array['A']['D']['A'] .我開始在正確的索引處搜索沒有任何問題,但我無法找到訪問所有“結果”數組的方法。只找到了搜索最終值(ADAM,ADAN)的方法,但正如我所說,我正在從我的搜索點尋找所有可能的最終值。所以基本上我想從我的搜索字符串的最后一個字符之后的結果數組中獲取所有值作為我的數組的索引。希望這個解釋能指出我在尋找什么。
查看完整描述

2 回答

?
慕的地8271018

TA貢獻1796條經驗 獲得超4個贊

第一部分是找到列表的起點,這只是循環搜索字符串中的每個字符并移動到數組中的那個值的情況。

找到起點后,您可以使用array_walk_recursive()which 只會訪問葉節點 - 所以這只是名稱(在這種情況下),所以創建所有這些節點的列表并返回它們......

function getEntry ( array $result, string $search )  {

    for($i = 0; isset($search[$i]); $i++){

        $result = $result[$search[$i]];

    }

    $output = [];

    array_walk_recursive($result, function ( $data ) use (&$output)   {

        $output[] = $data;

    });

    return $output;

}


$searchstring = 'ADA';

print_r(getEntry($result, $searchstring));

這應該給...


Array

(

    [0] => ADAM

    [1] => ADAN

)


查看完整回答
反對 回復 2022-10-22
?
隔江千里

TA貢獻1906條經驗 獲得超10個贊

該腳本首先遍歷包含 的字符的鍵$searchstring,如果找到它并且沒有引發錯誤,它會遞歸遍歷數組以查找所有result鍵以將其添加到$result數組中。之后,它內爆$result數組并回顯它。


$searchstring = 'HE';


for( $i = 0; $i < strlen( $searchstring ); $i++ )  {

  $sub = @( isset( $sub ) ? $sub[$searchstring[$i]] : $array[$searchstring[$i]] ) 

         or die( 'no results found' );

}


array_walk_recursive( $sub, function( $value ) use ( &$results )  {

  $results[] = $value;

});


echo implode( ', ', $results );


查看完整回答
反對 回復 2022-10-22
  • 2 回答
  • 0 關注
  • 107 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號