php中为什么多个foreach循环中获取不到上一个foreach循环的key值

php中为什么多个foreach循环中获取不到上一个foreach循环的key值,第1张

可以取到的,只要命名不同就可以,例子如下:

$array = array(

'a' => array('a1' => 1, 'a2' => 2), 

'b' => array('b1' => 3, 'b2' => 4)

);

foreach ($array as $key => $value) {

foreach ($value as $k => $v) {

echo "\$array[{$key}][{$k}] = {$v}<br>";

}

}

输出结果是:

$array[a][a1] = 1

$array[a][a2] = 2

$array[b][b1] = 3

$array[b][b2] = 4

我觉得,其实从参数的注释说明文字大致可以看出代码所要达到的功能:

取得get参数

@params String $key 参数名,为空时,返回整个$_GET数组,

@params String $default 默认值 当指定的参数的值为假(false,null,空值,0)时,使用此值作为返回

@params String $callback 回调函数,对返回值进行处理

@return Mixed

从代码来看,首先,类构造器会初始化 $get 属性成员,而 get 函数,则通过传递的参数来获取 $get 属性成员中的数据、或者返回缺省的数值、或者进行自定义回调函数处理后再返回数据。

需要准备的材料分别是:电脑、php编辑器、浏览器。

php中已知数组键值取键名的步骤如下:

1、首先,打开php编辑器,新建php文件,例如:indexphp。

2、在indexphp中,输入代码:

$a = ['123' => 'test', '57' => 'world', 'abg' => 'php'];

$b = array_flip($a);

echo $b['php'];

3、浏览器运行indexphp页面,此时就可以了。

<php

$source = array('a' => '111', 'b' => '222', 'c' => '33333', 'd' => '4444');

$needKey = array('a', 'c');

$needKey = array_flip($needKey); //调转键值使之可比。array('a'=>0, 'c'=>1)

$array = array_intersect_ukey($source,$needKey,'key_compare_func'); //array_intersect_ukey用回调函数比较键名来计算数组的交集

var_dump($array);

function key_compare_func($key1, $key2){

if ($key1 == $key2)

return 0;

else if ($key1 > $key2)

return 1;

else

return -1;

}

//End_php

array_keys、array_values两个函数专门执行这一的功能~~~

例如:

<php

$array = array("size" => "XL", "color" => "gold");

print_r(array_values($array));

>

会输出:

Array

(

[0] => XL

[1] => gold

)

再例如:

<php

$array = array(0 => 100, "color" => "red");

print_r(array_keys($array));

$array = array("blue", "red", "green", "blue", "blue");

print_r(array_keys($array, "blue"));

$array = array("color" => array("blue", "red", "green"),

"size" => array("small", "medium", "large"));

print_r(array_keys($array));

>

以上例程会输出:

Array

(

[0] => 0

[1] => color

)

Array

(

[0] => 0

[1] => 3

[2] => 4

)

Array

(

[0] => color

[1] => size

)

获取一个数组中重复的元素 代码如下:

a 方法一:

代码如下  

function array_repeat($arr) { if(!is_array($arr)) return $arr; $arr = array_count_values($arr); $newArr = array(); foreach($arr as $k=>$v) { if($v> ) array_push($newArr $k); } return $newArr; }

b 方法二:

代码如下  

function array_repeat($arr) { if(!is_array($arr)) return $arr; $arr = array_unique($arr); $arr = array_diff_key($arr $arr ); return array_unique($arr ); }

测试方法

代码如下  

$arr = array( apple blue red banana pear apple blue color color ); print_r(array_repeat($arr));

结果: Array ( [ ] => apple [ ] => blue [ ] => color )

后来代一些删除数组重复元素的方法

array_keys函数来删除数组重复元素

/

代码如下  

$a=array("red" "green" "blue" "yellow"); count($a); //得到 unset($a[ ]); //删除第二个元素 count($a); //得到 echo $a[ ]; //数组中仅有三个元素 本想得到最后一个元素 但却得到blue echo $a[ ]; //无值

//array array_splice (array input int offset [ int length [ array replacement]]) //array_splice()其实是替换数组元素的函数 但如果不加替换值就简单的删除元素 下面是array_splice()的用法: $b=array("red" "green" "blue" "yellow"); array_splice($a );

//下面看一个比较全面的删除重复值并且删除指定的数组元素

代码如下  

$array = array( => " it net" => "菠萝" => " it net" => "香蕉" => "芭乐" => " it net" => " it net");

$search_keys = array_keys($array " it net");

foreach($search_keys as $key) { unset($array [$key]); }

print_r($array );

/ 得到结果 array ( [ ] => 菠萝 [ ] => 芭乐 [ ] => 香蕉 ) /

lishixinzhi/Article/program/PHP/201311/20922

$arr = array('name'=>1111,'pass'=>222222);

$key = 'name';

if(array_key_exists($key, $arr))echo $arr[$key];

以上就是关于php中为什么多个foreach循环中获取不到上一个foreach循环的key值全部的内容,包括:php中为什么多个foreach循环中获取不到上一个foreach循环的key值、php 程序段中 $this -> get[$key])中的get[$key])这样表达是什么意思,不明,类代码截取、php中已知数组键值怎么取得键名等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9468588.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-28
下一篇 2023-04-28

发表评论

登录后才能评论

评论列表(0条)

保存