Home  >  Article  >  Backend Development  >  [PHP Learning] Analysis of the sequential storage structure principle of linear tables and code examples

[PHP Learning] Analysis of the sequential storage structure principle of linear tables and code examples

little bottle
little bottleforward
2019-04-25 15:55:501793browse

This article mainly talks about the principle analysis and code examples of the sequential storage structure of linear tables. It has certain reference value and interested friends can learn about it.

1. Arrays in PHP are actually ordered mappings, which can be used as arrays, lists, hash tables, dictionaries, sets, stacks, queues, and are not fixed lengths
2. Multiple array definitions If the units all use the same key name, only the last one is used, and the previous ones are overwritten
3. If you want a parameter of the function to always be passed by reference, you can add it in front of the parameter in the function definition The reference of symbol &
4.PHP is an alias, that is, two different variable names point to the same content; "By default, objects are passed by reference." But in fact, this is not completely correct. When an object is passed as a parameter, returned as a result, or assigned to another variable, the other variable has no reference relationship with the original one, but they both store copies of the same identifier

<?php
class Sqlist{
        public $data=array();
        public $length=0;
}
//插入元素
function listInsert(&$sqlist,$i,$e){
        //位置是否超出范围
        if($i<1 && $i>$sqlist->length+1){
                return false;
        }   
        //从插入位置开始,后面的所有元素都退一位
        if($i<=$sqlist->length){//要插入的位置不是在尾部
                for($k=$sqlist->length-1;$k>=$i-1;$k--){
                        $sqlist->data[$k+1]=$sqlist->data[$k];
                }   
        }   
        //新元素插入
        $sqlist->data[$i-1]=$e;
        //长度加1
        $sqlist->length++;
        return true;
}
//获取元素
function getElement($sqlist,$i,&$e){
        if($sqlist->length==0 || $i<1 || $i>$sqlist->length){
                return false;
        }   
        $e=$sqlist->data[$i-1];
        return true;
}
//删除元素
function listDelete($sqlist,$i,&$e){
        if($sqlist->length==0 || $i<1 || $i>$sqlist->length){
                return false;
        }   
        $e=$sqlist->data[$i-1];
        //如果是最后一个元素
        if($i!=$sqlist->length){
                //在删除位置之后的元素,往前移动一位
                for($k=$i-1;$k<=$sqlist->length-1;$k++){
                        $sqlist->data[$k]=$sqlist->data[$k+1];
                }   
        }   
        $sqlist->length--;
}
//插入线性表
$sqlist=new Sqlist();
listInsert($sqlist,1,"Tau");
listInsert($sqlist,1,"Shihan");
//获取元素
$e="";
getElement($sqlist,2,$e);
echo $e."\n";//输出Tau
//删除元素
listDelete($sqlist,1,$e);
var_dump($sqlist);

Related tutorials:PHP video tutorial

The above is the detailed content of [PHP Learning] Analysis of the sequential storage structure principle of linear tables and code examples. For more information, please follow other related articles on the PHP Chinese website!

Statement:
This article is reproduced at:cnblogs.com. If there is any infringement, please contact admin@php.cn delete