Php array search (multi-dimensional array search)

Source: Internet
Author: User
Tags mixed

 

One-dimensional array search is simple. in_array ()

If the value parameter is a string and the type parameter is set to true, the search area is case sensitive.

The code is as follows: Copy code

<? Php
$ People = array ("Peter", "Joe", "Glenn", "Cleveland ");

If (in_array ("Glenn", $ people ))
  {
Echo "Match found ";
  }
Else
  {
Echo "Match not found ";
  }
?>

Output:

Match found


Array_key_exists () function

If a specified key is found in an array, the array_key_exists () function returns true; otherwise, false. The format is as follows:

Boolean array_key_exists (mixed key, array );

The following example searches for apple in the array key. If it is found, the color of the fruit is output:

The code is as follows: Copy code

 
$ Fruit ["apple"] = "red ";
$ Fruit ["banana"] = "yellow ";
$ Fruit ["pear"] = "green ";
If (array_key_exists ("apple", $ fruit )){
Printf ("apple's color is % s", $ fruit ["apple"]);
}

// Apple's color is red

 

Array_search () function

The array_search () function searches for a specified value in an array. If yes, the corresponding key is returned. Otherwise, false is returned. The format is as follows:

Mixed array_search (mixed needle, array haystack [, boolean strict])

The following example searches for a specific date (December 7) in $ fruits. If it is found, information about the corresponding state is returned:

The code is as follows: Copy code

 
$ Fruits ["apple"] = "red ";
$ Fruits ["banana"] = "yellow ";
$ Fruits ["watermelon"] = "green ";
$ Founded = array_search ("green", $ fruits );
If ($ founded)
Printf ("% s was founded on % s.", $ founded, $ fruits [$ founded]);

// Watermelon was founded on green.

 

Array_keys () function

The array_keys () function returns an array containing all the keys found in the searched array. The format is as follows:

Array array_keys (array [, mixed search_value])


If the optional parameter search_value is included, only the key that matches the value is returned. The following example outputs all the arrays found in the $ fruit array:

The code is as follows: Copy code


$ Fruits ["apple"] = "red ";
$ Fruits ["banana"] = "yellow ";
$ Fruits ["watermelon"] = "green ";
$ Keys = array_keys ($ fruits );
Print_r ($ keys );

// Array ([0] => apple [1] => banana [2] => watermelon)

Array_values () function

The array_values () function returns all values in an array and automatically provides a numerical index for the returned array. The format is as follows:

Array array_values (array)

The following example gets the values of each element found in $ fruits:

The code is as follows: Copy code

 
$ Fruits ["apple"] = "red ";
$ Fruits ["banana"] = "yellow ";
$ Fruits ["watermelon"] = "green ";
$ Values = array_values ($ fruits );
Print_r ($ values );

// Array ([0] => red [1] => yellow [2] => green)

All of the above is a one-dimensional array search. To implement two-dimensional data or multi-dimensional data, we can refer to the following example.

1. Search for the key value of a multi-dimensional array in php

For example:

The code is as follows: Copy code

$ Foo [1] ['A'] ['XX'] = 'bar 1 ';
$ Foo [1] ['B'] ['XX'] = 'bar 2 ';
$ Foo [2] ['A'] ['BB '] = 'bar 3 ';
$ Foo [2] ['A'] ['yy'] = 'bar 4 ';
$ Foo [3] ['c'] ['DD'] = 'bar 3 ';
$ Foo [3] ['F'] ['GG '] = 'bar 3 ';
$ Foo ['info'] [1] = 'bar 5 ';

How can I find bar 3. There are three results, and all three results are required. Let's look at the following function:
Bytes -------------------------------------------------------------------------------------------------------------------------------
Function array_search_re ($ needle, $ haystack, $ a = 0, $ nodes_temp = array ()){
Global $ nodes_found;
$ A ++;
Foreach ($ haystack as $ key1 => $ value1 ){
$ Nodes_temp [$ a] = $ key1;
If (is_array ($ value1 )){
Array_search_re ($ needle, $ value1, $ a, $ nodes_temp );
    }
Else if ($ value1 ===$ needle ){
$ Nodes_found [] = $ nodes_temp;
    }
}
Return $ nodes_found;
}
Else ---------------------------------------------------------------------------------------------------------------------------------
This function can return all the content to be found above to the output key name.
$ Result = array_search_re ('Bar 3', $ foo );

Print_r ($ result );

The output result is as follows:
Array ([0] => Array ([1] => 2 [2] => a [3] => bb)
[1] => Array ([1] => 3 [2] => c [3] => dd)
[2] => Array ([1] => 3 [2] => f [3] => gg)
        )

Php search for the key name of a multi-dimensional array

The code is as follows: Copy code

Function array_search_key ($ needle, $ haystack ){
Global $ nodes_found;

Foreach ($ haystack as $ key1 => $ value1 ){
 
If ($ key1 ===$ needle ){
 
$ Nodes_found [] = $ value1;
      
   }
If (is_array ($ value1 )){
Array_search_key ($ needle, $ value1 );
    }
  
  
}

Return $ nodes_found;
}
$ Result = array_search_key ('A', $ foo );

Print_r ($ result );

The output result is as follows:
 

Array
(
[0] => Array
        (
[Xx] => bar 1
        )

[1] => Array
        (
[Bb] => bar 3
        )

[2] => Array
        (
[Yy] => bar 4
        )

)

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.