php,一个数组[1,2,3,5,8,9,10];不固定, 如何变成['1-3','5','8-10']这样的形

2844℃ BENNIE

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个整数,存入到数组中,然后反序输出。

TAG: 数组 形式