-1

how select one cell array by id key please ?7

array is countries.. every point is different, Identification numbers are random not to follow

my array is

$countries = array(
    array(
        'id'     => 4,
        'ar'     => 'أفغانستان',
        'ro'     => 'Afganistan',
        'ru'     => 'Афганистан',
        'zh'     => '阿富汗',
        'zh-tw'  => '阿富汗',
        'alpha2' => 'af',
        'alpha3' => 'afg'
    ),
    array(
        'id'     => 8,
        'ar'     => 'ألبانيا',
        'bg'     => 'Албания',
        'pt'     => 'Albânia',
        'ro'     => 'Albania',
        'alpha2' => 'al',
        'alpha3' => 'alb'
    ),..............
RiggsFolly
  • 93,638
  • 21
  • 103
  • 149
CrACK
  • 5
  • 2

1 Answers1

0

You can simply use this function:

function getById($arrays, $id){
    foreach($arrays as $array){
        if ($array['id'] == $id)
            return $array;
    }
    return null;
}

Usage sample:

echo implode(' - ', getById($countries, 8));

Results:

8 - ألبانيا - Албания - Albânia - Albania - al - alb

A better way is to use ids as keys of your array, so your array should be like: this:

$countries = array(
    4 => array(
        'ar'     => 'أفغانستان',
        'ro'     => 'Afganistan',
        'ru'     => 'Афганистан',
        'zh'     => '阿富汗',
        'zh-tw'  => '阿富汗',
        'alpha2' => 'af',
        'alpha3' => 'afg'
    ),
    8 => array(
        'ar'     => 'ألبانيا',
        'bg'     => 'Албания',
        'pt'     => 'Albânia',
        'ro'     => 'Albania',
        'alpha2' => 'al',
        'alpha3' => 'alb'
    ));

An example of access:

echo  $countries[8]['ar'];
ouflak
  • 2,458
  • 10
  • 44
  • 49
Saleh Shekari
  • 41
  • 1
  • 4