2016-12-18 21 views
2

なので、私は何かを探しているので、php配列の値からキーを取る方法をしばらくブロックしています。ここでキーと値は

が、私は私の研究を開始し、私の配列です:

値«のY»を皮切り
[It] => z 
[is] => h 
[soon] => y 
[the] => c 
[new] => w 
[year] => e 
[2017] => e 
[!] => e 

、私は[まもなく]キーよりも、これと同じ値から別のテーブルから単語を取得したいと思います( = "y")、時間がこの同じ値に達するまで。ここで

は、他のアレイのexempleです:私が試した

is 
my 
favorite 

:私は私の例の配列に入れて、この文から取得したいと思いよりも、ここで

[Here] => a 
[is] => y 
[my] => c 
[favorite] => u 
[team] => y 
[.] => o 

は言葉です多くの方法で、例えば "in_array"を使って成功していますが、成功しません。

本当にありがとうございます!

+0

こんにちは、あなたは 'Cを検索する場合、私は正しく...理解していればすでに検索パラメータ(すなわちy)を知って、次のことを試してくださいと仮定

「あなたが出力を「私の好きなチーム」にしたい。 'a' =>' 'これは私の好きなチームです.'(他の反復は' a 'なので) –

+0

あなたはどのようにしてその文を作成したいのですか?一見するとかなり不明なようだ。 – Nytrix

答えて

1

「y」の文字を最初の配列からを探して、値が始まりyで終わる2番目の配列からキーをフィルタリングして除外しています。

$array2 = array(
    'Here' => 'a', 
    'is' => 'y', 
    'my' => 'c', 
    'favorite' => 'u', 
    'team' => 'y', 
    '.' => 'o' 
); 

$search = 'y'; // Search parameter 
$freq = 0;  // Frequency of 'y' in second array 
$result = array(); 
foreach ($array2 as $k => $arr) { 
    if ($arr == 'y') { 
     $freq++;   // Increment every time y appears 
    } 
    /* If only one y appears, store the array keys in $result */ 
    if ($freq == 1) { 
     $result[] = $k; 
    } 
    /* If another y appears, break out from the loop such that $result stores all $array2 keys until the second y appears */ 
    if ($freq == 2) { 
     break;   
    } 
} 

出力:

Array 
(
    [0] => is 
    [1] => my 
    [2] => favorite 
)