<php
//两个数组,下标一样的情况下,键值按公式计算 环比值 = (本期数 - 上期数)/上期数100%
public function array_add($a,$b){
//根据键名获取两个数组的交集
$arr=array_intersect_key($a,$b);
//遍历第二个数组,如果键名不存在与第一个数组,将数组元素增加到第一个数组
foreach($bas$key=>$value){
if(!array_key_exists($key,$a)){
$a[$key]=$value;
}
}
//计算键名相同的数组元素的和,并且替换原数组中相同键名所对应的元素值
foreach($arras$key=>$value){
$a[$key] = ($b[$key] !=0) floatval(sprintf("%2f",($a[$key] -$b[$key])/$b[$key]100)) :0;
}
//返回相加后的数组
return$a;
}
PHP 获取数组指定值的位置或下标代码如下:
<php
//定义一个数组
$array = array(0 => 'a', 1 => 'b', 2 => 'c', 3 => 'd');
//使用 array_search('要搜索的值',数组);
$key = array_search('b', $array); // $key = 1;
$key = array_search('a', $array); // $key = 0;
>
扩展资料
php 中的数组实际上是一个有序图。图是一种把 values 映射到 keys 的类型。此类型在很多方面做了优化,因此可以把它当成真正的数组来使用,或列表(矢量),散列表(是图的一种实现),字典,集合,栈,队列以及更多可能性。
因为可以用另一个 php 数组作为值,也可以很容易地模拟树。解释这些结构超出了本手册的范围,但对于每种结构至少会发现一个例子。要得到这些结构的更多信息,建议参考有关此广阔主题的外部著作。
对于任何的类型:整型、浮点、字符串、布尔和资源,如果将一个值转换为数组,将得到一个仅有一个元素的数组(其下标为 0),该元素即为此标量的值。如果将一个对象转换成一个数组,所得到的数组的元素为该对象的属性(成员变量),其键名为成员变量名。
如果将一个 NULL 值转换成数组,将得到一个空数组。
$array=array();
$array[0]="乌龟";
$subcate[0][0]=$array[0];
print_r($subcate);
自己看结果,你要明白一点,修改'计算机'就要把他当做值而不是键
估计你和一楼犯了一样的错误,就是$subcate[0]['计算机']=$array[0];
那样就把'计算机'当成1个键,就会造成在$subcate[0][]这个array里多出一个'计算机'键,值为'乌龟'PHP的牛X就是数组下标可以随意命名,这点有利有弊
有时候会让人犯小糊涂
关键看你的查询语句结构了,如:tablename中有二个字段,ID,Name
$sql="select from tablename ";
$result=@mysql_query($sql);
while($rows=mysql_fetch_assoc($result))
{
echo $rows['ID'];//输出字段1
echo $rows['Name'];//输出字段2
}
如果在查询时没有查出全部字段,要显示就必须加条件重新查询了。
不过你这问题问的有些模糊,需要更清楚的思路请理一下再询问
php中数组中的元素分为两个部分,一个是键,也就是key,一个是值,也就是value。
$arr[key]=value换成你给的数组就是:
$arr[5]=1;$arr[12]=2
比如:
$a=array(1,2,3,4);数组a中,只赋给了值,分别是1,2,3,4。其实,他默认的还在每个值前有一个键,只是没有显示。默认的是从0开始,比如上面的数组,他们的键分别是:0,1,2,3。
用户可以给这些值赋键,也就是用户手动给他添加键。而键的内容用户自定。可以是数字也可以是字符。比如:
$a=array("ab"=>1,"c"=>bb);
这样,数组a就可以写成:
$a[ab]=1;$a[c]=bb
方括号中的是键,等号后的事值。这样就可以标记数组中的不同值,不会因为数组中有多个值而没有办法出去其中的一个值,只要提供键,就可以取出对应的值了。
你所提供的数组,名称叫做arr,他其中记录了两个值,分别为1和2。而1和2所对应的键分别为5和12。键其实就是个标记,来记录数组中值存放的位置。
您看这样符合您的要求吗?
<php// 设置ini文件名
$ini[0]='1ini';
$ini[1]='2ini';
// 检查第2个ini文件是否存在,如不存在,则创建之
if(!file_exists($ini[1])) {
$file=fopen($ini[1],"a");
fwrite($file, '[config]');
fclose($file);
}
// 获取值
$values[0]=parse_ini_file($ini[0]);
$values[1]=parse_ini_file($ini[1]);
// 获取键
$keys[0]=array_keys($values[0]);
$keys[1]=array_keys($values[1]);
// 写入第2个ini文件
if(isset($_GET['section'])) {
foreach($keys[0] as $key) {
// 如果在第1个ini文件中存在此键,
// 而在第2个ini文件中不存在,则进行写入
// 这是为了避免写入重复或多余的键
if($_GET['section']===$key AND !isset($values[1][$key])) {
file_put_contents($ini[1], "\n$key=0", FILE_APPEND);
}
}
}
// 重新获取第2个ini文件的值
$values[1]=parse_ini_file($ini[1]);
// 重新获取第2个ini文件的键
$keys[1]=array_keys($values[1]);
// 开始输出为表格
echo '<table style="border-collapse:collapse; border:1px solid #000000;">';
// 遍历所有键
foreach($keys[0] as $key) {
// 如果值为OK,而且在第二个ini文件中不存在,则显示ok
if($values[0][$key]==='OK' AND !isset($values[1][$key])) {
echo '<tr style="border:1px solid #000000;">';
echo '<td style="width:64px; border:1px solid #000000;">',$key,'</td>';
echo '<td style="width:64px; border:1px solid #000000;"><a href="section=',$key,'" style="color:#000000; text-decoration: none;">ok</a></td>';
echo '</tr>';
}
// 如果值为OK,而且在第二个ini文件中存在,则显示no
elseif($values[0][$key]==='OK' AND isset($values[1][$key])) {
echo '<tr style="border:1px solid #000000;">';
echo '<td style="width:64px; border:1px solid #000000;">',$key,'</td>';
echo '<td style="width:64px; border:1px solid #000000;">no</td>';
echo '</tr>';
}
}
echo '</table>';
// 表格输出完毕
// 注销所有变量
unset($ini, $file, $values, $keys, $key);
>
PHP中,写入文件必须要有写入权限的。但一般来说是没问题的。如果报错,就必须要配置相应的写入权限才行。
希望对您有帮助,谢谢!
以上就是关于php 对两个下标一样的一维数组,键值按公式计算合成一维数组的方法全部的内容,包括:php 对两个下标一样的一维数组,键值按公式计算合成一维数组的方法、PHP获取数组下标的问题、php如何从一个数组获得另一个数组的值等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)