ホームページ >バックエンド開発 >PHPの問題 >PHP 配列操作を使用して要素を検索および削除する方法

PHP 配列操作を使用して要素を検索および削除する方法

PHPz
PHPzオリジナル
2023-04-26 10:31:09615ブラウズ

PHP は、Web 開発で広く使用されている非常に人気のあるサーバーサイド スクリプト言語です。 PHP では、配列は非常に一般的なデータ型であり、関連するデータ コレクションを格納するためによく使用されます。

データが増加し続けると、配列内の特定の要素を検索または削除することが必要になる場合があります。この記事では、PHP を使用して配列を操作し、要素を検索および削除する方法について説明します。

1. 配列の基本操作

(1) 配列の作成

PHP では、array() 関数を使用して新しい配列を作成できます:

$numbers = array(1, 2, 3, 4, 5);

[] 演算子を使用して配列を作成することもできます。

$numbers = [1, 2, 3, 4, 5];

(2) 配列要素へのアクセス

配列要素にアクセスする場合は、[] 演算子と要素の添え字。配列の添字は 0 から始まるため、最初の要素の添字は 0 になります。

echo $numbers[0];    //输出1

(3) 配列要素を変更する

配列要素を変更する必要がある場合は、配列添字を使用して要素にアクセスし、再割り当てできます。

$numbers[0] = 10;

これにより、配列要素が変更されます。最初の要素は 1 から 10 に変更されます。

2. 配列要素の検索

(1) 線形検索

PHP では、for ループを使用して配列要素を 1 つずつ比較し、特定の要素を検索します。

function linear_search($arr, $x) {
  for ($i=0; $i < count($arr); $i++) {
    if ($arr[$i] == $x) {
      return $i;
    }
  }
  return -1;
}

ここでは、linear_search という関数が定義されており、配列と検索する値の 2 つのパラメータを受け取ります。 for ループを使用して配列を反復処理し、ターゲット要素が見つかるとそのインデックスが返されます。

この検索方法の欠点は、最悪の場合、配列全体を比較する必要があり、時間計算量が O(n) になることです。

(2) 二分探索

二分探索はより効率的な検索方法であり、場合によっては検索時間を O(log n) まで短縮できます。

このメソッドは、ソートされた配列でのみ機能します。基本的な考え方は次のとおりです。毎回、検索を半分ずつ絞り込むことができます。

function binary_search($arr, $x) {
  $low = 0;
  $high = count($arr) - 1;
    
  while ($low <= $high) {
    $mid = floor(($low + $high) / 2);
        
    if ($arr[$mid] < $x) {
      $low = $mid + 1;
    }
    else if ($arr[$mid] > $x) {
      $high = $mid - 1;
    }
    else {
      return $mid;
    }
  }
    
  return -1;
}
ここでは binary_search という関数が定義されており、配列と検索する値の 2 つのパラメータを受け取ります。 while ループを使用して、ターゲット要素がどこにあるかを特定します。

(3) in_array 関数を使用して検索する

PHP では、組み込み関数 in_array を使用して配列内の要素を検索できます。

$numbers = [10, 20, 30, 40, 50];

if (in_array(30, $numbers)) {
  echo "Found";
} else {
  echo "Not found";
}
このプログラムは次の出力を行います。 「見つかりました」。配列に 30 が含まれているためです。

3. 配列要素の削除

(1) unset 関数を使用して削除します

PHP では、組み込み関数 unset を使用して配列内の要素を削除できます。 。削除する要素が配列の最後の要素である場合は、array_pop 関数を直接使用できます。

$numbers = [10, 20, 30, 40, 50];

unset($numbers[2]);    //删除30
array_pop($numbers);   //删除50

print_r($numbers);
このプログラムでは、30 と 50 が削除されているため、[10, 20, 40] が出力されます。

(2) array_splice 関数を使用して削除する

配列要素を削除するもう 1 つの方法は、array_splice 関数を使用することです。この関数は、配列内の任意の位置から開始して、1 つ以上の要素を同時に削除できます。

$numbers = [10, 20, 30, 40, 50];

array_splice($numbers, 2, 1);  //删除30

print_r($numbers);
このプログラムでは、30 が削除されているため、[10, 20, 40, 50] も出力されます。

概要

PHP には、配列を処理するための組み込み関数と演算子が多数用意されています。配列要素の検索と削除は PHP 開発で頻繁に使用される操作の 1 つであるため、これらの手法を理解することが重要です。

配列要素を検索する場合、配列がソートされているかどうかに応じて、線形検索と二分検索が最も一般的に使用される方法です。配列要素を削除する場合は、unset、array_pop、array_splice などの関数を使用できます。

どの方法でも、配列要素が正しく削除されるようにするには、ターゲット要素の位置と添字を知る必要があります。

以上がPHP 配列操作を使用して要素を検索および削除する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。