2016-12-18 44 views
2

自從我查找某些東西以來,我已經有一段時間了,我被阻止了一段時間以知道如何從php數組中的值中獲取鍵。php中的鍵和值

這裏是我的陣列,我開始我的研究:

[It] => z 
[is] => h 
[soon] => y 
[the] => c 
[new] => w 
[year] => e 
[2017] => e 
[!] => e 

與價值«Ÿ»開始,我想從這個相同的值,得到另一個表的話比鍵[快]( =「y」),直到時間達到這個相同的值。

這裏是另一個陣列的爲例:

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

這裏是的話比我想的這句話把陣列我的例子中得到:

is 
my 
favorite 

我試着在很多方面,例如用「in_array」但沒有成功...

非常感謝你的迴應!

+0

你好,如果我理解正確......如果你搜索'C '你想要輸出'我最喜歡的團隊'。 'a' =>'這裏是我最喜歡的球隊。'(因爲沒有'a'的其他迭代) –

+0

你想如何創建這個句子,而不是什麼條件?一見鍾情似乎很不清楚。 – Nytrix

回答

1

從我所瞭解的情況來看,你在某種程度上從第一個數組中找到了'y'字符,然後從第二個數組中篩選出鍵值以y開頭和結尾的鍵。

假設你已經知道搜索參數(即Y),請嘗試以下操作:

$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 
)