php,一个数组[1,2,3,5,8,9,10];不固定, 如何变成['1-3','5','8-10']这样的形
如何知道php数组相同元素出现的下标之差
1
2
3
4
5
6
7
8
9
10
11
12
<?php //PHP 7.2
functioncountDistances(array&$a, int $n){ //引用$a
$allPos=array_keys($a, $n, TRUE); //找出各个位置
if(count($allPos)<2) returnFALSE; //目标数只有0或1次出现,没有距离
$out=array();
for($i=1; $i<count($allPos); $i++)
$out[]=$allPos[$i]-$allPos[$i-1]; //统计距离
return$out;
}
$a=[7,2,4,9,1,10,10,7,5,4,3,7,8,9,10,3,2,5,7,5,10];
$d=countDistances($a, 10);
var_dump($d);
1
2
3
4
array (size=3)
0 => int 1
1 => int 8
2 => int 6
PHP,如何遍历一个数组,并且把符合条件的项移到数组末尾。
//$Arr为要遍历的数组
$temArr=array();
foreach($Arr as $key=>$value){
if(此处为条件){
$temArr[]=$value;
unset($Arr[$key]);
}
}
$resArr=array_merge($Arr,$temArr);
return $resArr;
希望对你有用,不明白的话再追问
php两个数组如何做比较,求大神给予代码支持
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
<?php
$a= array(
0 => array(
'id'=>1,
'count'=>4,
),
1 => array(
'id'=>2,
'count'=>2,
),
2 => array(
'id'=>3,
'count'=>3,
),
3 => array(
'id'=>4,
'count'=>5,
),
4 => array(
'id'=>5,
'count'=>1,
),
);
$b= array(
0 => array(
'id'=>1,
'count'=>2,
),
1 => array(
'id'=>2,
'count'=>3,
),
2 => array(
'id'=>3,
'count'=>2,
),
3 => array(
'id'=>4,
'count'=>3,
),
4 => array(
'id'=>5,
'count'=>2,
),
);
foreach($aas$k=>$v)
{
if($v['id'] == $b[$k]['id'])
{
echo$v['count'] > $b[$k]['count'] ? '大于了': '小于了';
echo'<hr>';
}
}
php声明一个值为1-10的的数组,怎么弄?简单点的
声明数组的语法为在数组名后加上用方括号括起来的维数说明。本接仅介绍一
维数组。下面是一个整型数组的例子:
int array[10];
这条语句定义了一个具有10个整型元素的名为array的数组。这些整数在内存中
是连续存储的。数组的大小等于每个元素的大小乘上数组元素的个数。方括号
中的维数表达式可以包含运算符,但其计算结果必须是一个长整型值。这个数
组是一维的。
下面这些声明是合法的:
int offset[5+3];
float count[5*2+3];
下面是不合法的:
int n=10;
int offset[n]; /*在声明时,变量不能作为数组的维数*/
二、用下标访问数组元素
int offset[10];
表明该数组是一维数组,里面有10个数,它们分别为offset[0],offset[1],…
…offset[9];千万注意,数组的第一个元素下标从0开始。一些刚学编程的人
员经常在这儿犯一些错误。
offset[3]=25;
上面的例子是把25赋值给整型数组offset的第四个元素。
在赋值的时候,可以使用变量作为数组下标。
main()
{
int i,offset[10];
for(i=0;i<10;i++) scanf(%d,&offset[i]);
for(i=9;i>=0;i--) printf(%d ,offset[i]);
printf(\n);
}
题目的意思是先输入10个整数,存入到数组中,然后反序输出。