簡體   English   中英

如何在數組中搜索特定值?

[英]How can I search an array for specific values?

我需要一些有關如何從搜索框中搜索數組的幫助。

讓我們說我搜索$ticker並寫BTC

然后打印出來:

The last known currency for BTC is 57 

我只想打印出$ k3值。

感謝您是否可以花時間引導我朝着正確的方向前進:)

<form method="POST" action="">
    <input type="text" name="Searcharray" name="searcharray">
    <input type="submit" value="Search" name="searcharray">
</form>

<?php

$ticker = array(
    0 => "BTC",
    1 => "ETH",
    2 => "LTC",
    3 => "XMR",
    4 => "XRP"
);
$name = array(
    0 => "Bitcoin",
    1 => "Ethereum",
    2 => "Litecoin",
    3 => "Monero",
    4 => "Ripple"
);
$k1 = array(
    0 => 1,
    1 => 2,
    2 => 3,
    3 => 4,
    4 => 5
);
$k2 = array(
    0 => 11,
    1 => 12,
    2 => 13,
    3 => 14,
    4 => 15
);
$k3 = array(
    0 => 17,
    1 => 27,
    2 => 37,
    3 => 47,
    4 => 57
);
?>

array_search會有所幫助 - http://php.net/manual/de/function.array-search.php

$index = array_search('BTC', $ticker);
$value = $k3[$index];

為什么不制作這樣的結構?:

$data = [
  'BTC' => [
     'name' => 'Bitcoin',
     'k1' => 1,
     'k2' => 11,
     'k3' => 17
  ], ...
];

然后它會是:

$value = $data['BTC']['k3'];
$index = array_search("BTC", $ticker);
if ($index !== FALSE) {
    $currency = $k3[$index];
    echo "The last known currency of BTC is $currency";
}

但是如果使用二維關聯數組,事情會更容易:

$data = [
    "BTC" => ["name" => "Bitcoin", "k1" => 1, "k2" => 11, "k3" => 17],
    "ETH" => ["name" => "Ethereum", "k1" => 2, "k2" => 12, "k3" => 27],
    ...
];

然后你可以這樣做:

if (isset($data["BTC"])) {
    $currency = $data["BTC"]["k3"];
    echo "The last known currency of BTC is $currency";
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM