簡體   English   中英

如何獲取具有特定值的數組的關聯索引

[英]how to get associative indexes of an array which has a specific value

    {
    [2012-05-23] => 1
    [2012-05-24] => 1
    [2012-05-25] => 1
    [2012-05-26] => 1
    [2012-05-27] => 1
    [2012-05-28] => 11
    [2012-05-29] => 11
    [2012-05-30] => 12
    }

例如,這是我的數組,我只想獲得數值大於10的數組索引

所以在這種情況下,答案必須聽起來像那樣

    {
    [0] => 2012-05-28
    [1] => 2012-05-29
    [2] => 2012-05-30
     }

像這樣的人!

$new_array = array();
foreach ($array as $r => $a)
{
    if ($a>10)
    $new_array[] = $r;
}
$array=//Your array in original post.
$newarray=array();
foreach ($array as $key=>$val) {
    if ($key>10) {
        $newarray[]=$key;
    }
}    

如果$array是你的第一個數組:

$new_array = array();
foreach($array as $key => $value) {
    if( $value > 10 ) {
        $new_array[] = $key;
    }
}

試試這個(假設<pre>中的數組被稱為$dates ):

$result = array();
foreach($dates as $date => $value) {
    if($value > 10) $result[] = $date;
}

print_r($result);
$testData = array ('2012-05-23' => 1,
                   '2012-05-24' => 1, 
                   '2012-05-25' => 1,
                   '2012-05-26' => 1, 
                   '2012-05-27' => 1, 
                   '2012-05-28' => 11, 
                   '2012-05-29' => 11, 
                   '2012-05-30' => 12,
                   );
$testNeedle = 10;

$result = array_filter($testData, 
                       function($arrayEntry) use ($testNeedle) {
                           return $arrayEntry > $testNeedle; 
                       }
);
$result = array_keys($result);

var_dump($result);

這段代碼可以完成這項工作。

$array1 = array(
'2012-05-23' => 1,
'2012-05-24' => 1,
'2012-05-25' => 1,
'2012-05-26' => 1,
'2012-05-27' => 1,
'2012-05-28' => 11,
'2012-05-29' => 11,
'2012-05-30' => 12
);
$result = (array_keys(array_filter($array1, "select")));
function select($var)
{    return($var > 10);     }

您還可以在空數組中使用帶有array_push的for循環來跳過回調函數。

暫無
暫無

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

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