PHP中数组使用索引数组、关联数组、多维数组、排序,从数据库追加数据到数组中等调用示例

<?php

//PHP中数组使用索引数组、关联数组、多维数组、排序,从数据库追加数据到数组中等调用示例

header('Content-Type:text/html;charset=utf-8');

//定义一个空数组的两种方法

echo '定义一个空数组的两种方法'.'<br>';

$cars=array();

$cars=[];

//索引数组,下标(键名)是从0开始的整数

echo "索引数组,下标(键名)是从0开始的整数"."<br>";

$cars=array("Volvo","BMW","Toyota");

echo $cars[2].'<br>';   // 输出单个数组元素,下标从0开始,这里值为Toyota

print_r($cars); //输出所有数组元素用Print_r函数

echo '<br>';

//用foreach循环遍历数组输出每个元素

foreach ($cars as $value) {

    echo $value.',';

}

//关联数组,下标(键名)是字符串,键和值可以用单引号也可以用双引号,也可混用

echo "关联数组,下标(键名)是字符串"."<br>";

// $age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");

$age=array('Peter'=>'35','Ben'=>"37","Joe"=>"43");

echo $age['Ben'].'<br>';

print_r($age);

echo '<br>';

//二维索引数组

echo "二维索引数组"."<br>";

$cars2=array(

    array("Volvo",22,18),

    array("BMW",15,13),

    array("Saab",5,2),

    array("Land Rover",17,15)

);

echo $cars2[0][0].'<br>';   //输出二维数组中第0个元素中的第0号元素的值,索引数组下标从0开始,这里值为Volvo

echo $cars2[2][1].'<br>';   //输出二维数组中第2个元素中的第1号元素的值,索引数组下标从0开始,这里值为5

print_r($cars2);

echo '<br>';

//遍历二维索引数组输出每个元素方法一

echo '遍历二维索引数组输出每个元素方法一'.'<br>';

for ($i=0; $i < count($cars2); $i++){

    for ($j=0; $j < count($cars2[$i]); $j++) {

        // echo $cars2[$i][$j].'<br>';

        echo $cars2[$i][$j].',';

    }

}

//遍历二维索引数组输出每个元素方法二

echo '遍历二维索引数组输出每个元素方法二'.'<br>';

for ($i=0; $i < count($cars2); $i++){

    foreach ($cars2[$i] as $value) {

        echo $value.',';

    }

}

//二维关联数组,下标(键名)是字符串, 键名是字符串至少有一个字符

echo "二维关联数组,下标(键名)是字符串, 键名是字符串至少有一个字符"."<br>";

$cars3=array(

    "a"=>array("Volvo",22,18),

    "b"=>array("BMW",15,13),

    "c"=>array("Saab",5,2),

    "d"=>array("Land Rover",17,15)

);

echo $cars3['a'][0].'<br>';   //输出二维数组键名为a的元素中第0个元素的值,这里值为Volvo

print_r($cars3);

echo '<br>';

echo count($cars3).'<br>';     //输出数组元素个数,二维数组的count函数只统计第一维数组元素个数,不统计第二维数组元素个数,这里值为4

//遍历二维关联数组

echo "遍历二维关联数组"."<br>";

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

    // echo $key.':'.$value[0].'<br>';

    // echo "Key: $key\n";

    // echo "\$car3[".$key."]";

    foreach ($value as $key2 => $value2) {

        // echo "Key2: $key2, Value2: $value2\n";

        echo "\$car3[".$key."][".$key2."] = $value2"."<br>";

    }

}

// 数组排序

echo "数组排序"."<br>";

$cars4=array("Volvo","BMW","Toyota","Honda");

sort($cars4);   // 升序排序,默认是升序,可以不写

rsort($cars4);  // 降序排序

print_r($cars4);

echo '<br>';

// 遍历排序后的数组

foreach ($cars4 as $value) {

    echo $value.'<br>';

}

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

    echo "\$cars4[".$key."] = $value"."<br>";

}

//合并数组函数array_merge()

echo "合并数组函数array_merge()"."<br>";

$a1=array("a"=>"red","b"=>"green","c"=>"blue","d"=>"yellow");

$a2=array("e"=>"red","f"=>"green","g"=>"blue","h"=>"yellow");

$a3=array_merge($a1,$a2);

print_r($a3);

echo '<br>';

//数组转换字符串函数implode()

echo "数组转换字符串函数implode()"."<br>";

$a4=array("a","b","c","d","e");

$str=implode(",",$a4);

echo $str.'<br>';

//字符串转换数组函数explode()

echo "字符串转换数组函数explode()"."<br>";

$str2="a,b,c,d,e";

$a5=explode(",",$str2);

print_r($a5);

echo '<br>';

//混合多维数组


 

//将数据库的数据插入数组

echo "将数据库的数据插入数组".'<br>';

require "../conn.php";

// 查询数据

$sql1 = "SELECT price_date, gl FROM gold_prices ORDER BY uptime LIMIT 10";

$result = $conn->query($sql1);

// $data是个多维混合数组,其第一个键labels是索引数组,第二个键datasets是关联数组,第二个键的第二个元素data又是一个索引数组

$data = [];

$data['labels'] = [];

$data['datasets'] = [[

    'label' => '最近10天黄金价格',

    'data' => [],

    'backgroundColor' => 'rgba(255, 99, 132, 0.6)',

    'borderColor' => 'rgba(255, 99, 132, 1)',

    'borderWidth' => 1

]];

//将数数据库数据插入到数组中

if ($result->num_rows > 0) {

    while($row = $result->fetch_assoc()) {

        array_push($data['labels'], $row['price_date']);

        array_push($data['datasets'][0]['data'], $row['gl']);

    }

}

//输出$data[labels]数据

echo "输出\$data[labels]数据".'<br>';

print_r($data['labels']);

echo '<br>';

//输出$data['datasets'][0]['data']

echo "输出\$data['datasets'][0]['data']"."<br>";

print_r($data['datasets'][0]['data']);

echo '<br>';

//输出$data所有数据

echo "输出\$data所有数据".'<br>';

print_r($data);

echo $data['datasets']['label'];


 

//=========================================================================

//关联数组,下标(键名)是字符串

echo "关联数组,下标(键名)是字符串"."<br>";

// $age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");

$age=array('Peter'=>'35','Ben'=>"37","Joe"=>"43");

echo $age['Ben'].'<br>';

echo $age['Joe'].'<br>';

print_r($age);

echo '<br>';

$data1 = [];

$data1['labels'] = ['aa'=>'aa','bb'=>'bb'];

//这里$data1['datasets'] = []单层括号时调用label键

$data1['datasets'] = [

    'label' => '最近10天黄金价格',

    'data' => [],

];

print_r($data1);

echo '<br>';

echo $data1['datasets']['label'].'<br>';

//这里$data1['datasets'] = [[]]双层括号时调用label键加[0]表第一个元素

$data1['datasets'] = [[

    'label' => '最近10天黄金价格',

    'data' => [],

]];

print_r($data1);

echo '<br>';

echo $data1['datasets'][0]['label'].'<br>';


 

//混合多维数组


 

//将数据库的数据插入数组

echo "将数据库的数据插入数组".'<br>';

require "../conn.php";

// 查询数据

$sql1 = "SELECT price_date, gl FROM gold_prices ORDER BY uptime LIMIT 10";

$result = $conn->query($sql1);

// $data是个多维混合数组,其第一个键labels是索引数组,第二个键datasets是关联数组,第二个键的第二个元素data又是一个索引数组

$data = [];

$data['labels'] = [];

$data['datasets'] = [[  //注:这里的$data['datasets'] = [['key'=>'..']];有双层括号,调用里面元素要加[0]

    'label' => '最近10天黄金价格',

    'data' => [],

    'backgroundColor' => 'rgba(255, 99, 132, 0.6)',

    'borderColor' => 'rgba(255, 99, 132, 1)',

    'borderWidth' => 1

]];

//使用array_push()函数将数数据库数据插入到数组中

if ($result->num_rows > 0) {

    while($row = $result->fetch_assoc()) {

        array_push($data['labels'], $row['price_date']);

        array_push($data['datasets'][0]['data'], $row['gl']);   //注:$data['datasets']=[['key'=>'val']]有双层括号,调用里面元素要加[0]

;

    }

}

//输出$data[labels]数据

echo "输出\$data[labels]数据".'<br>';

print_r($data['labels']);

echo '<br>';

//输出$data['datasets'][0]['data']

echo "输出\$data['datasets'][0]['data']"."<br>";

print_r($data['datasets'][0]['data']);

echo '<br>';

//输出$data所有数据

echo "输出\$data所有数据".'<br>';

print_r($data);




 

?>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

weixin_58691040

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值