PHP, если в массиве, сделать что-то со значением - PullRequest
0 голосов
/ 26 марта 2012

Я пытаюсь проверить, есть ли значение в массиве.Если так, возьмите это значение массива и сделайте что-нибудь с ним.Как это будет сделано?

Вот пример того, что я пытаюсь сделать:

$the_array = array("buejcxut->10", "jueofi31->20", "nay17dtt->30");

if (in_array('20', $the_array)) {

    // If found, assign this value to a string, like $found = 'jueofi31->20'

    $found_parts = explode('->', $found);

    echo $found_parts['0']; // This would echo "jueofi31"    

}

Ответы [ 4 ]

2 голосов
/ 26 марта 2012

Это должно сделать это:

foreach($the_array as $key => $value) {
    if(preg_match("#20#", $value)) {
        $found_parts = explode('->', $value);
    }
    echo $found_parts[0];
}

И заменить "20" на любое значение, которое вы хотите.

1 голос
/ 26 марта 2012

Вот пример того, как вы можете искать значения массивов с помощью регулярных выражений.

<?php

$the_array = array("buejcxut->10", "jueofi31->20", "nay17dtt->30");

$items = preg_grep('/20$/', $the_array);

if( isset($items[1]) ) {

    // If found, assign this value to a string, like $found = 'jueofi31->20'

    $found_parts = explode('->', $items[1]);

    echo $found_parts['0']; // This would echo "jueofi31"    

}

Вы можете увидеть демо здесь: http://codepad.org/XClsw0UI

1 голос
/ 26 марта 2012

вам лучше проверить это в цикле foreach:

foreach ($the_array as $key => $value) {
  if ($value == 20) {
    // do something
  }
  if ($value == 30) {
    //do something else
  }
}

странное определение массива, вы имели в виду:

$the_array = array("buejcxut"=>10, "jueofi31"=>20, "nay17dtt"=>30);

использование массива над ключом $ является ключом элемента (buejcxut, jueofi31 и т. Д.), А значение $ value - значением этого элемента (10, 20 и т. Д.).

0 голосов
/ 26 марта 2012

если вы хотите определить индексированный массив, он должен выглядеть следующим образом:

$my_array = array("buejcxut"=>10, "jueofi31"=>20, "nay17dtt"=>30);

тогда вы можете использовать in_array

if (in_array("10", $my_array)) {
    echo "10 is in the array"; 
    // do something
}
...