As a PowerShell developer with years of experience, I’ve found that arrays are one of the most powerful data structures available in PowerShell. In this tutorial, I’ll explain everything you need to know about working with arrays of strings in PowerShell with examples.
What is a PowerShell Array?
An array is a data structure that serves as a collection of multiple items. Think of it as a container that can hold multiple values, allowing you to work with them as a group.
Arrays are fundamental to PowerShell scripting because they allow the ingest, manipulation, and output of true data structures rather than just raw strings.
When it comes to strings specifically, an array of strings is simply a collection of text values stored together in a single variable.
Create an Array of Strings in PowerShell
There are several ways to create an array of strings in PowerShell. Let’s explore the most common methods:
Method 1: Using Comma-Separated Values
The simplest way to create an array of strings in PowerShell is by assigning comma-separated values to a variable:
$fruits = "Apple", "Banana", "Cherry", "Date"
Method 2: Using the Array Constructor
PowerShell allows you to use the array constructor to create arrays:
$states = [string[]]@("California", "Texas", "Florida", "New York")
Method 3: Create an Empty Array and Add Elements
You can also start with an empty array in PowerShell and add elements to it:
$cities = @()
$cities += "Chicago"
$cities += "Los Angeles"
$cities += "Miami"
Check out Remove Duplicate Objects from an Array in PowerShell
Access Elements in a PowerShell String Array
Once you’ve created your string array, you’ll need to know how to access its elements. PowerShell provides several ways to do this:
Access by Index
PowerShell arrays are zero-indexed, meaning the first element is at position 0:
$fruits = "Apple", "Banana", "Cherry", "Date"
$fruits[0] # Returns "Apple"
$fruits[2] # Returns "Cherry"
Here is an example:

Access Multiple Elements
You can access multiple elements from a PowerShell array of strings using a range of indices:
$fruits[1..3] # Returns "Banana", "Cherry", "Date"
Access the Last Element
To access the last element of an array of strings in PowerShell:
$fruits[-1] # Returns "Date"
Check out Count the Number of Objects in an Array in PowerShell
Modify PowerShell Arrays of Strings
Arrays in PowerShell are incredibly flexible, allowing you to modify them in various ways:
Update Array Elements
You can update an element by assigning a new value to a specific index. Let me show you a strings array.
$teams = "Lakers", "Celtics", "Bulls", "Heat"
$teams[1] = "Knicks"
$teams
# $teams is now "Lakers", "Knicks", "Bulls", "Heat"
I execute the above PowerShell script, and you can see the exact output in the screenshot below:

Add Elements to an Array
To add elements to an existing string array, use the addition operator:
$colors = "Red", "Blue", "Green"
$colors += "Yellow"
# $colors is now "Red", "Blue", "Green", "Yellow"
Remove Elements from an Array
While PowerShell arrays don’t have a direct “remove” method, you can filter out elements:
$numbers = "One", "Two", "Three", "Four"
$numbers = $numbers | Where-Object { $_ -ne "Three" }
# $numbers is now "One", "Two", "Four"
Read Loop Through an Array in PowerShell
Advanced String Array Operations in PowerShell
Now, let’s dive into some more advanced operations you can perform on string arrays.
Sorting String Arrays
PowerShell makes it easy to sort string arrays:
$animals = "Zebra", "Elephant", "Monkey", "Lion"
$sortedAnimals = $animals | Sort-Object
# $sortedAnimals contains "Elephant", "Lion", "Monkey", "Zebra"
Filtering String Arrays
You can filter string arrays based on certain criteria:
$cities = "New York", "Los Angeles", "Chicago", "San Francisco", "Seattle"
$citiesWithSpace = $cities | Where-Object { $_ -like "* *" }
# $citiesWithSpace contains "New York", "Los Angeles", "San Francisco"
Joining Array Elements into a String
To combine all elements of a string array into a single string:
$fruits = "Apple", "Banana", "Cherry"
$fruitString = $fruits -join ", "
# $fruitString is "Apple, Banana, Cherry"
Check out Remove the First and Last Item in an Array in PowerShell
Working with Multi-dimensional PowerShell String Arrays
PowerShell also supports multi-dimensional arrays, which are essentially arrays of arrays:
$teams = @(
@("Lakers", "Clippers", "Warriors"),
@("Yankees", "Red Sox", "Cubs"),
@("Cowboys", "Patriots", "Eagles")
)
# Accessing elements
$teams[0][1] # Returns "Clippers"
Common Pitfalls and Best Practices
When working with string arrays in PowerShell, keep these best practices in mind:
Watch Out for Single Element Arrays
A common issue in PowerShell is that an array with a single element can be treated as a scalar value. To force PowerShell to treat a single-element collection as an array, you can use the comma operator:
$singleFruit = @("Apple")
# Or
$singleFruit = ,"Apple"
Using the Correct Method to Check if an Array Contains an Element
To check if a string array contains a specific element:
$fruits = "Apple", "Banana", "Cherry"
$fruits -contains "Banana" # Returns $true
$fruits -contains "Mango" # Returns $false
Performance Considerations
When working with large arrays, consider these performance tips:
- Avoid using
+=operator for large arrays as it creates a new array each time - Use the ArrayList or List types for better performance when you need to frequently add or remove items
- Consider using hashtables for lookup operations instead of repeatedly searching arrays
Practical Examples of String Arrays in PowerShell
Let’s look at some practical examples of using string arrays in real-world scenarios:
Example 1: Processing a List of Servers
Here is an example of string arrays in PowerShell.
$servers = "server1", "server2", "server3", "server4"
foreach ($server in $servers) {
Write-Host "Checking status of $server..."
# Code to check server status
}
You can see the exact output in the screenshot below:

Example 2: Parsing CSV Data
Here is an example of parsing CSV data and using a string array in PowerShell.
$csvData = Import-Csv "employees.csv"
$emails = $csvData | ForEach-Object { $_.Email }
# $emails now contains an array of email addresses
foreach ($email in $emails) {
# Process each email
}
Example 3: Working with Command Line Arguments
function Process-Files {
param (
[string[]]$FileNames
)
foreach ($file in $FileNames) {
Write-Host "Processing $file..."
# Process each file
}
}
# Call with an array of strings
Process-Files -FileNames @("file1.txt", "file2.txt", "file3.txt")
Check out Filter Array of Objects in PowerShell
Putting Array Values into Strings
One common task is incorporating array elements into strings in PowerShell. Here’s how you can do it:
String Interpolation
Here is an example of string interpolation.
$names = "John", "Jane", "Mike"
$message = "Hello, $($names[0])! Other users are: $($names[1]) and $($names[2])."
Format Operator
Here is an example of a format operator of an array of strings.
$colors = "Red", "Green", "Blue"
$formatted = "Primary colors are: {0}, {1}, and {2}." -f $colors[0], $colors[1], $colors[2]
Conclusion
PowerShell arrays of strings allow you to store, manipulate, and process collections of text data efficiently. In this tutorial, I explained everything from basic operations like creating and accessing arrays to more advanced techniques like filtering, joining, etc.
I hope you have learned how to work with string arrays in PowerShell.
You may also like:
- Read CSV into Array in PowerShell
- Format An Array Of Objects As Table In PowerShell
- Access Array of Objects in PowerShell

Hey! I’m Bijay Kumar, founder of SPGuides.com and a Microsoft Business Applications MVP (Power Automate, Power Apps). I launched this site in 2020 because I truly enjoy working with SharePoint, Power Platform, and SharePoint Framework (SPFx), and wanted to share that passion through step-by-step tutorials, guides, and training videos. My mission is to help you learn these technologies so you can utilize SharePoint, enhance productivity, and potentially build business solutions along the way.