2017-05-25 13 views
1

こんにちは私はPHPをかなり新しくしていて、特定の配列tokentoken_timeをどのように見つけることができますか?たとえば、tokenの値が440745553780011a38b207466e2dae1aで、token_timeの値が1495672355の配列の下に表示され、表示されるようにするにはどうすればよいですか?ここでPHPの配列内の特定の値を見つけるには

アレイ

array (size=1) 
    'token' => 
    array (size=4) 
     0 => 
     array (size=2) 
      'token' => string '04a1dd0991b366fdc4d7d46fcff03cb3' (length=32) 
      'token_time' => int 1495672339 
     1 => 
     array (size=2) 
      'token' => string '80d84dc863cbbeaef0c9a448f7865352' (length=32) 
      'token_time' => int 1495672345 
     2 => 
     array (size=2) 
      'token' => string '440745553780011a38b207466e2dae1a' (length=32) 
      'token_time' => int 1495672355 
     3 => 
     array (size=2) 
      'token' => string '766ac765d2a34e01cd954444d5895208' (length=32) 
      'token_time' => int 1495672525 

答えて

1

は何が必要実現機能である:

function findToken(&$array, $token, $time){ 
    foreach($array['token'] as $data){ 
     if($data['token'] == $token && $data['token_time'] == $time){ 
      return $data; 
     } 
    } 
    return null; 
} 

は、ここでそれを使用する方法は次のとおりです。

驚くべきことに
$token = findToken($array, '440745553780011a38b207466e2dae1a', '1495672355'); 
if($token){ 
    echo "Found token"; 
} else { 
    echo "Token not found"; 
} 
2

、あなたは単にarray_search使用することができます()は通常のように配列を持ちます:

$id = array_search([ 
    'token' => '440745553780011a38b207466e2dae1a', 
    'token_time' => 1495672355 
], $array['token']); 

$idには、両方の値が存在する配列のIDが含まれます。次に、このようにアクセスすることができます

$array['token'][$id]; 

用語も針アレイに正しい順序やタイプにする必要はありません。

$id = array_search([ 
    'token_time' => '1495672355', //passed as string, whereas array has these as ints 
    'token' => '440745553780011a38b207466e2dae1a' 
], $array['token']); 
+0

この解決策で問題があればということです配列は要素の要素と一致しません。検索は失敗します。おそらく "token"と "token_time"以上のものを含んでいる可能性がある配列の中で、特定のtokenとtoken_timeを見つけることが問題でした。 – user2914191

関連する問題